1 /** 2 * Copyright 2017 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include "lpcsnoop/snoop_listen.hpp" 18 19 #include <cinttypes> 20 #include <cstdio> 21 #include <iostream> 22 #include <memory> 23 24 /* Example PostCode handler which simply prints them */ 25 static void printPostcode(postcode_t postcode) 26 { 27 /* Print output to verify the example program is receiving values. */ 28 std::printf("recv: 0x%" PRIx64 "\n", 29 std::get<primary_post_code_t>(postcode)); 30 } 31 32 /* 33 * One can also specify custom handler that operates on 34 * sdbusplus::message::message type and pass them to constructor. 35 * e.g. 36 * 37 * static void PrintMessageMap(sdbusplus::message::message& m) 38 * { 39 * std::string messageBusName; 40 * std::map<std::string, std::variant<uint64_t>> messageData; 41 * 42 * m.read(messageBusName, messageData); 43 * 44 * std::cout << "Got message from " << messageBusName << std::endl; 45 * for (const auto& kv : messageData) 46 * { 47 * std::cout << "Key: " << kv.first << std::endl; 48 * std::cout << "Value: " << get<uint64_t>(kv.second) << std::endl; 49 * } 50 * } 51 * 52 * lpcsnoop::SnoopListen snoop(ListenBus, PrintMessageMap); 53 */ 54 55 /* 56 * This is the entry point for the application. 57 * 58 * This application simply creates an object that registers for incoming value 59 * updates for the POST code dbus object. 60 */ 61 int main() 62 { 63 auto ListenBus = sdbusplus::bus::new_default(); 64 lpcsnoop::SnoopListen snoop(ListenBus, printPostcode); 65 66 while (true) 67 { 68 ListenBus.process_discard(); 69 ListenBus.wait(); 70 } 71 72 return 0; 73 } 74