26#ifndef AI_IPC_IPCVARIANTLIST_H 
   27#define AI_IPC_IPCVARIANTLIST_H 
   29#include "IpcFileDescriptor.h" 
   40#pragma GCC diagnostic push 
   41#pragma GCC diagnostic ignored "-Wshadow" 
   42#pragma GCC diagnostic ignored "-Waddress" 
   44#pragma GCC diagnostic ignored "-Wnonnull-compare" 
   46#include <boost/variant.hpp> 
   47#pragma GCC diagnostic pop 
   63    bool operator==(
const DbusObjectPath& rhs)
 const { 
return objectPath == rhs.objectPath; }
 
   66    explicit DbusObjectPath(
const std::string& obj)  : objectPath(obj) { }
 
   69    std::string objectPath;
 
 
   80typedef boost::variant<uint8_t,     
 
   97typedef boost::variant<uint8_t,
 
  108                       std::vector< uint8_t >,
 
  109                       std::vector< uint16_t >,
 
  110                       std::vector< int32_t >,
 
  111                       std::vector< uint32_t >,
 
  112                       std::vector< uint64_t >,
 
  113                       std::vector< UnixFd >,
 
  114                       std::vector< DbusObjectPath >,
 
  115                       std::vector< std::string >,
 
  116                       std::map<std::string, DictDataType>
 
  122typedef std::vector<Variant> VariantList;
 
  149template<
typename... Ts>
 
  150bool parseVariantList(
const AI_IPC::VariantList& returns, Ts *...args)
 
  153    const size_t numArgs = 
sizeof...(args);
 
  154    if (returns.size() != numArgs)
 
  162    AI_IPC::VariantList::const_iterator it = returns.begin();
 
  167    int unused[]{(processVal(&result, it++, args), 1)...};
 
  174void processVal(
bool *result, 
const AI_IPC::VariantList::const_iterator & it, T * arg);
 
Definition IpcFileDescriptor.h:33
 
Light wrapper around a file descriptor so it can be used safely with dbus.
 
Structure to store dbus object path.
Definition IpcVariantList.h:62
 
Definition IpcVariantList.h:127