annotate xpcom/primitives.py @ 8:9491ac848af1 default tip

The pyxpcom library now uses @executable_path. Refined the Makefile more.
author Atul Varma <varmaa@toolness.com>
date Thu, 08 May 2008 11:01:04 -0700
parents 3393caed6b2d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 # Various utilities for working with nsISupportsPrimitive
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2 from xpcom import components
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4 _primitives_map = {}
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6 def _build_map():
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7 ifaces = components.interfaces
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 iface = ifaces.nsISupportsPrimitive
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9 m = _primitives_map
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 m[iface.TYPE_ID] = ifaces.nsISupportsID
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12 m[iface.TYPE_CSTRING] = ifaces.nsISupportsCString
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13 m[iface.TYPE_STRING] = ifaces.nsISupportsString
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 m[iface.TYPE_PRBOOL] = ifaces.nsISupportsPRBool
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15 m[iface.TYPE_PRUINT8] = ifaces.nsISupportsPRUint8
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16 m[iface.TYPE_PRUINT16] = ifaces.nsISupportsPRUint16
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17 m[iface.TYPE_PRUINT32] = ifaces.nsISupportsPRUint32
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 m[iface.TYPE_PRUINT64] = ifaces.nsISupportsPRUint64
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19 m[iface.TYPE_PRINT16] = ifaces.nsISupportsPRInt16
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 m[iface.TYPE_PRINT32] = ifaces.nsISupportsPRInt32
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21 m[iface.TYPE_PRINT64] = ifaces.nsISupportsPRInt64
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 m[iface.TYPE_PRTIME] = ifaces.nsISupportsPRTime
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23 m[iface.TYPE_CHAR] = ifaces.nsISupportsChar
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 m[iface.TYPE_FLOAT] = ifaces.nsISupportsFloat
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25 m[iface.TYPE_DOUBLE] = ifaces.nsISupportsDouble
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26 # Do interface pointer specially - it provides the IID.
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 #m[iface.TYPE_INTERFACE_POINTER] = ifaces.nsISupportsDouble
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29 def GetPrimitive(ob):
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 if len(_primitives_map)==0:
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31 _build_map()
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 prin = ob.QueryInterface(components.interfaces.nsISupportsPrimitive)
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34 try:
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 better = _primitives_map[prin.type]
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36 except KeyError:
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 raise ValueError, "This primitive type (%d) is not supported" % (prin.type,)
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38 prin = prin.QueryInterface(better)
3393caed6b2d Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39 return prin.data