1 /***************************************************************************
3 * Copyright 2010,2011 BMW Car IT GmbH
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 ****************************************************************************/
20 #ifndef _DBUSMESSAGEHANDLER_H_
21 #define _DBUSMESSAGEHANDLER_H_
25 #include <dbus/dbus.h>
27 class DBUSMessageHandler
31 ~DBUSMessageHandler();
33 void setConnection(DBusConnection* conn);
34 DBusConnection* getConnection();
36 void initReceive(DBusMessage* msg);
37 bool registerPathFunction( DBusObjectPathMessageFunction fMessageFunc,
38 DBusObjectPathUnregisterFunction fUnregisterFunc,
40 void initReply(DBusMessage* msg);
42 void ReplyError(DBusMessage* msg, const char* errorname, const char* errorMsg);
43 bool registerMessageFilter( DBusHandleMessageFunction fMessageFunc,
46 dbus_uint32_t getUInt();
48 dbus_bool_t getBool();
51 void getArrayOfUInt(int* length, unsigned int** array);
52 void getArrayOfString(std::vector<std::string>* uniforms);
54 void appendUInt(dbus_uint32_t toAppend);
55 void appendByte(char toAppend);
56 void appendBool(dbus_bool_t toAppend);
57 void appendDouble(double toAppend);
58 void appendArrayOfUInt(unsigned int length, unsigned int *IDs);
61 DBusMessageIter m_MessageIter;
62 DBusMessage* m_pReply;
63 dbus_uint32_t m_serial;
64 DBusConnection* m_pConnection;
66 DBusObjectPathVTable m_objectPathVTable;
70 inline void DBUSMessageHandler::setConnection(DBusConnection* conn)
75 inline DBusConnection* DBUSMessageHandler::getConnection()
80 #endif // _DBUSMESSAGEWRAPPER_H_