8b963792cd8a44bbdc9bb864672cd29fc16e8b1f
[browser-dbus-bridge.git] / xpcom-dbusservice / DBusMarshaling.h
1 /**
2  * Browser D-Bus Bridge, XPCOM version
3  *
4  * Copyright © 2008 Movial Creative Technologies Inc
5  *  Contact: Movial Creative Technologies Inc, <info@movial.com>
6  *  Authors: Lauri Mylläri, <lauri.myllari@movial.fi>
7  *           Kalle Vahlman, <kalle.vahlman@movial.com>
8  *
9  * The contents of this file are subject to the Mozilla Public License
10  * Version 1.1 (the "License"); you may not use this file except in
11  * compliance with the License. You may obtain a copy of the License at
12  * http://www.mozilla.org/MPL/
13  *
14  * Software distributed under the License is distributed on an "AS IS"
15  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
16  * License for the specific language governing rights and limitations
17  * under the License.
18  *
19  * The Original Code is the Browser D-Bus Bridge, XPCOM version.
20  *
21  * The Initial Developer of the Original Code is Movial Creative Technologies
22  * Inc. Portions created by Initial Developer are Copyright (C) 2008
23  * Movial Creative Technologies Inc. All Rights Reserved.
24  *
25  */
26
27 #ifndef __DBUSMARSHALING_H__
28 #define __DBUSMARSHALING_H__
29
30 #include <dbus/dbus.h>
31
32 #include "nsIVariant.h"
33 #include "nsIMutableArray.h"
34
35 #include "jsapi.h"
36 #include "jsarray.h"
37 #include "jsobj.h"
38
39 void getSignatureFromJSValue(JSContext *cx, jsval *aValue, nsCString &aResult);
40
41 void getSignatureFromVariantType(PRUint16 aType, nsCString &aResult);
42
43 void getSignatureFromVariant(nsIVariant *aVariant, nsCString &aResult);
44
45 void getSignatureFromISupports(nsISupports *aISupports, nsCString &aResult);
46
47 // --------------------------- OLD STUFF ---------------------------
48 //
49 int getDBusType(nsIVariant *aVariant);
50
51 already_AddRefed<nsIMutableArray> getArrayFromIter(DBusMessageIter *aIter);
52
53 already_AddRefed<nsIWritableVariant> getVariantFromIter(DBusMessageIter *aIter, int aDBusType);
54
55 void addArrayToIter(nsIVariant *aVariant, DBusMessageIter *aIter, int aDBusType);
56
57 void addVariantToIter(nsIVariant *aVariant, DBusMessageIter *aIter, DBusSignatureIter *aSigIter);
58 void addBasicTypeToIter(nsIVariant *aVariant, DBusMessageIter *aIter, int aDBusType);
59
60 #endif