diff options
Diffstat (limited to 'PluginCommandInterfaceDbus/DBUSMessageHandler.cpp')
-rw-r--r-- | PluginCommandInterfaceDbus/DBUSMessageHandler.cpp | 118 |
1 files changed, 69 insertions, 49 deletions
diff --git a/PluginCommandInterfaceDbus/DBUSMessageHandler.cpp b/PluginCommandInterfaceDbus/DBUSMessageHandler.cpp index 6f335c6..a796f28 100644 --- a/PluginCommandInterfaceDbus/DBUSMessageHandler.cpp +++ b/PluginCommandInterfaceDbus/DBUSMessageHandler.cpp @@ -15,23 +15,23 @@ DBUSMessageHandler::DBUSMessageHandler() m_pConnection = dbus_bus_get(DBUS_BUS_SESSION, &m_err); if (dbus_error_is_set(&m_err)) { - DLT_LOG(DBusPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicator Connection error")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicator Connection error")); dbus_error_free(&m_err); } if (NULL == m_pConnection) { - DLT_LOG(DBusPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicator Connection is null")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicator Connection is null")); exit(1); } int ret = dbus_bus_request_name(m_pConnection,DBUS_SERVICE_PREFIX, DBUS_NAME_FLAG_REPLACE_EXISTING, &m_err); if (dbus_error_is_set(&m_err)) { - DLT_LOG(DBusPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicator Name Error"),DLT_STRING(m_err.message)); + DLT_LOG(DBusCommandPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicator Name Error"),DLT_STRING(m_err.message)); dbus_error_free(&m_err); } if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) { - DLT_LOG(DBusPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicatorNot Primary Owner"), DLT_INT(ret)); + DLT_LOG(DBusCommandPlugin,DLT_LOG_INFO, DLT_STRING("DBUSCommunicatorNot Primary Owner"), DLT_INT(ret)); exit(1); } } @@ -43,13 +43,13 @@ DBUSMessageHandler::~DBUSMessageHandler() bool errorset = dbus_error_is_set(&err); if (errorset) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("there was an dbus error")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("there was an dbus error")); } dbus_bus_name_has_owner(m_pConnection, DBUS_SERVICE_PREFIX, &err); errorset = dbus_error_is_set(&err); if (errorset) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("there was an dbus error")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("there was an dbus error")); } dbus_error_init(&err); dbus_bus_release_name(m_pConnection, DBUS_SERVICE_PREFIX, &err); @@ -59,7 +59,7 @@ void DBUSMessageHandler::initReceive(DBusMessage* msg) { if (!dbus_message_iter_init(msg, &m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS Message has no arguments!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS Message has no arguments!")); } } @@ -75,10 +75,10 @@ void DBUSMessageHandler::closeReply() // send the reply && flush the connection if (!dbus_connection_send(m_pConnection, m_pReply, &m_serial)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); exit(1); } - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler sending reply!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler sending reply!")); dbus_connection_flush(m_pConnection); // free the reply @@ -92,10 +92,10 @@ void DBUSMessageHandler::ReplyError(DBusMessage* msg, const char* errorname, con // send the reply && flush the connection if (!dbus_connection_send(m_pConnection, m_pReply, &m_serial)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); exit(1); } - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler sending reply with error!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler sending reply with error!")); dbus_connection_flush(m_pConnection); // free the reply @@ -105,10 +105,9 @@ void DBUSMessageHandler::ReplyError(DBusMessage* msg, const char* errorname, con char* DBUSMessageHandler::getString() { char* param; - if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no string!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no string!")); } else { @@ -124,7 +123,7 @@ dbus_bool_t DBUSMessageHandler::getBool() if (DBUS_TYPE_BOOLEAN != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no bool!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no bool!")); } else { @@ -140,7 +139,7 @@ char DBUSMessageHandler::getByte() if (DBUS_TYPE_BYTE != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no byte!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no byte!")); } else { @@ -156,7 +155,7 @@ dbus_uint32_t DBUSMessageHandler::getUInt() if (DBUS_TYPE_UINT32 != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no uint32_t!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no uint32_t!")); } else { @@ -172,7 +171,7 @@ double DBUSMessageHandler::getDouble() if (DBUS_TYPE_DOUBLE != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no double!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no double!")); } else { @@ -186,7 +185,7 @@ void DBUSMessageHandler::getArrayOfUInt(int* pLength, unsigned int** ppArray) { if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no array!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no array!")); return; } @@ -207,7 +206,7 @@ void DBUSMessageHandler::getArrayOfString(std::vector<std::string>* stringVector { if (DBUS_TYPE_ARRAY != dbus_message_iter_get_arg_type(&m_MessageIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no array!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no array!")); return; } @@ -218,7 +217,7 @@ void DBUSMessageHandler::getArrayOfString(std::vector<std::string>* stringVector { if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&arrayIter)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no string!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler argument is no string!")); } char* param; dbus_message_iter_get_basic(&arrayIter, ¶m); @@ -236,43 +235,44 @@ void DBUSMessageHandler::getArrayOfString(std::vector<std::string>* stringVector } } -void DBUSMessageHandler::appendBool(dbus_bool_t toAppend) +void DBUSMessageHandler::append(bool toAppend) { - if (!dbus_message_iter_append_basic(&m_MessageIter, DBUS_TYPE_BOOLEAN, &toAppend)) + dbus_bool_t mybool=toAppend; + if (!dbus_message_iter_append_basic(&m_MessageIter, DBUS_TYPE_BOOLEAN, &mybool)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); exit(1); } } -void DBUSMessageHandler::appendUInt(dbus_uint32_t toAppend) +void DBUSMessageHandler::append(dbus_uint32_t toAppend) { if (!dbus_message_iter_append_basic(&m_MessageIter, DBUS_TYPE_UINT32, &toAppend)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); exit(1); } } -void DBUSMessageHandler::appendDouble(double toAppend) +void DBUSMessageHandler::append(double toAppend) { if (!dbus_message_iter_append_basic(&m_MessageIter, DBUS_TYPE_DOUBLE, &toAppend)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); exit(1); } } -void DBUSMessageHandler::appendByte(char toAppend) +void DBUSMessageHandler::append(char toAppend) { if (!dbus_message_iter_append_basic(&m_MessageIter, DBUS_TYPE_BYTE, &toAppend)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); exit(1); } } -void DBUSMessageHandler::appendArrayOfUInt(unsigned int length, unsigned int *IDs) +void DBUSMessageHandler::append(unsigned int length, unsigned int *IDs) { DBusMessageIter arrayIter; dbus_message_iter_open_container(&m_MessageIter, DBUS_TYPE_ARRAY, "u", &arrayIter); @@ -283,21 +283,20 @@ void DBUSMessageHandler::appendArrayOfUInt(unsigned int length, unsigned int *ID dbus_message_iter_close_container(&m_MessageIter, &arrayIter); } -void DBUSMessageHandler::sendSignal(const char* name, const char* signal) { +void DBUSMessageHandler::sendSignal(const char* signalname) { dbus_uint32_t serial = 0; DBusMessage* msg; - DBusMessageIter args; - msg = dbus_message_new_signal(DBUS_SERVICE_PREFIX, signal, name); + msg =dbus_message_new_signal(DBUS_SERVICE_PREFIX_PATH,DBUS_SERVICE_PREFIX,signalname); if (NULL == msg) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("Message null!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("Message null!")); this->~DBUSMessageHandler(); } if (!dbus_connection_send(m_pConnection, msg, &serial)) { - DLT_LOG(DBusPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); + DLT_LOG(DBusCommandPlugin,DLT_LOG_ERROR, DLT_STRING("DBUS handler Out Of Memory!")); this->~DBUSMessageHandler(); } @@ -307,37 +306,58 @@ void DBUSMessageHandler::sendSignal(const char* name, const char* signal) { dbus_message_unref(msg); } -void DBUSMessageHandler::appendArrayOfStringUInt(std::list<stringAndUInt> list){ +void DBUSMessageHandler::append(std::list<ConnectionType> list){ DBusMessageIter arrayIter; - dbus_message_iter_open_container(&m_MessageIter, DBUS_TYPE_ARRAY, "si", &arrayIter); + dbus_message_iter_open_container(&m_MessageIter, DBUS_TYPE_ARRAY, "uu", &arrayIter); - std::list<stringAndUInt>::iterator Ilist; - std::list<stringAndUInt>::iterator Ibegin=list.begin(); - std::list<stringAndUInt>::iterator Iend=list.end(); + std::list<ConnectionType>::iterator Ilist; + std::list<ConnectionType>::iterator Ibegin=list.begin(); + std::list<ConnectionType>::iterator Iend=list.end(); for(Ilist=Ibegin;Ilist!=Iend; Ilist++) { - dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_STRING, &Ilist->string); - dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_UINT32, &Ilist->integer); + dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_UINT32, &Ilist->Sink_ID); + dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_UINT32, &Ilist->Source_ID); } dbus_message_iter_close_container(&m_MessageIter, &arrayIter); } -void DBUSMessageHandler::appendArrayOfStringString(std::list<stringString> list){ +void DBUSMessageHandler::append(std::list<SinkType> list){ DBusMessageIter arrayIter; - dbus_message_iter_open_container(&m_MessageIter, DBUS_TYPE_ARRAY, "ss", &arrayIter); + dbus_message_iter_open_container(&m_MessageIter, DBUS_TYPE_ARRAY, "su", &arrayIter); - std::list<stringString>::iterator Ilist; - std::list<stringString>::iterator Ibegin=list.begin(); - std::list<stringString>::iterator Iend=list.end(); + std::list<SinkType>::iterator Ilist; + std::list<SinkType>::iterator Ibegin=list.begin(); + std::list<SinkType>::iterator Iend=list.end(); for(Ilist=Ibegin;Ilist!=Iend; Ilist++) { - dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_STRING, &Ilist->string1); - dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_STRING, &Ilist->string2); + dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_STRING, &Ilist->name); + dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_UINT32, &Ilist->ID); } dbus_message_iter_close_container(&m_MessageIter, &arrayIter); } +void DBUSMessageHandler::append(std::list<SourceType> list){ + DBusMessageIter arrayIter; + dbus_message_iter_open_container(&m_MessageIter, DBUS_TYPE_ARRAY, "su", &arrayIter); + + std::list<SourceType>::iterator Ilist; + std::list<SourceType>::iterator Ibegin=list.begin(); + std::list<SourceType>::iterator Iend=list.end(); + for(Ilist=Ibegin;Ilist!=Iend; Ilist++) + { + dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_STRING, &Ilist->name); + dbus_message_iter_append_basic(&arrayIter, DBUS_TYPE_UINT32, &Ilist->ID); + } + dbus_message_iter_close_container(&m_MessageIter, &arrayIter); +} + + + + + + + |