Current File : //proc/3/root/proc/3/root/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyo
�
�SK\c@s�ddlZddlmZddlZddlmZmZmZmZddl m
Z
mZmZm
Z
mZmZmZmZmZddlZejddkr�eZnddd d
dgZdd
ddddgZddgZddgZeeZeeeZeeeZdZd�ZiZ iZ!iZ"da#d�Z$d�Z%ddl&m'Z'm(Z(m)Z)m*Z*m+Z+e)e*Be+BZ,d�Z-dd%d��YZ.de.fd��YZ/d e.fd!��YZ0d"�Z1d#d&d$��YZ2dS('i����N(t
MethodType(txpttCOMExceptiontnsErrortlogger( tIID_nsISupportstIID_nsIClassInfotIID_nsISupportsCStringtIID_nsISupportsStringtIID_nsISupportsWeakReferencetIID_nsIWeakReferencetXPTI_GetInterfaceInfoManagertGetComponentManagertXPTC_InvokeByIndexiit__del__t__len__t__nonzero__t__eq__t__neq__tnsISupportsPRInt32tnsISupportsPRInt16tnsISupportsPRUint32tnsISupportsPRUint16tnsISupportsPRUint8tnsISupportsPRBooltnsISupportsPRInt64tnsISupportsPRUint64tnsISupportsDoubletnsISupportsFloatsP
def %s(self, %s):
return XPTC_InvokeByIndex(self._comobj_, %d, (%s, (%s)))
cCsDd}g}g}g}d}x�|jD]�}|d}d|f}d}|jr�|j�r�|j�r�|j�s�|r�d}d}n|j||�|j|�ntj|�} |j|jf| �q(Wd}
|
j |�}t
|�dkr|dd}n|
j |�}t|j||j
t|�|fS(NiisParam%dts = Nones, t,(tparamsthidden_indicatortIsIntIsDippertIsOuttappendRtMakeReprForInvoketparam_flagstjointlentmethod_templatetnametmethod_indexttuple(tmethodtparam_notparam_declsR&tparam_namestused_defaulttparamt
param_namet
param_defaultt type_reprtsep((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt_MakeMethodCodeFs.
# cCs(tj�tj�tj�dadS(Ni(tinterface_cachetcleartinterface_method_cachetcontractid_info_cachet
have_shutdown(((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt _shutdownls
cBs�|j}ye||SWnek
r,nXe|�}e|d|fd�}i}|e�|fdU||}|ekr�ie|<n|e||<|S(Ns<XPCOMObject method '%s'>texec(R*R:tKeyErrorR7tcompiletglobals(tmethod_infotiidR*tmethod_codet
codeObjectt
tempNameSpacetret((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pytBuildMethodts
(t
XPT_MD_GETTERt
XPT_MD_SETTERtXPT_MD_NOTXPCOMtXPT_MD_CTORt
XPT_MD_HIDDENc
Cstj|d�}|dkr{g}i}i}i}tj|�}x�|jD]�}|j}|t@dkrO|t@r�t g|j
D]} | jftj| �^q��}
|j
|
f||j<q.|t@rt g|j
D]} | jftj| �^q��}
|j
|
f||j<q.|||j<qOqOWi}x!|jD]}|j||j<qBW||||f}|t|<n|S(Ni(R8tgettNoneRt InterfacetmethodstflagstFLAGS_TO_IGNORERJtlistRR&R%R+R*RIt constantstvalue(
RCRGtmethod_code_blockstgetterstsetterstmethod_infost interfacetmRRtxR&RUtc((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pytBuildInterfaceInfo�s.
5
5
t
_XPCOMBasecBsbeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �ZRS(
cCs1y
|j}Wntk
r nXt|j|�S(N(t_comobj_tAttributeErrortcmp(tselftother((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__cmp__�s
cCs
t|j�S(N(thashRa(Rd((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__hash__�scCs.y
|j}Wntk
r nX|j|kS(N(RaRb(RdRe((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR�s
cCs.y
|j}Wntk
r nX|j|kS(N(RaRb(RdRe((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR�s
cCsCy$|jjtd�t|j�SWntk
r>|j�SXdS(Ni(RatQueryInterfaceRtstrRt__repr__(Rd((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__str__�s
cCs>y|jjt�}Wntk
r6tt|��SX|jS(N(RaRiRRtunicodeRjtdata(Rdtprin((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__unicode__�s
cCsvt�}xZ|D]R}|j|�j�}y#|jj|�}||j�SWqtk
raqXqWtd��dS(NsFThis object does not support automatic numeric conversion to this type(RtGetInfoForNametGetIIDRaRiRnRt
ValueError(Rdtinterface_namestcvttiimtinterface_nameRCtprim((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt_do_conversion�s
cCs7tjddkr'|jttt�S|jtt�S(Nii(tsystversion_infoRyt_int_interfacest_long_interfacestint(Rd((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__int__�scCs|jtt�S(N(RyR}tlong(Rd((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__long__�scCs|jtt�S(N(Ryt_float_interfacestfloat(Rd((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt __float__�s(t__name__t
__module__RfRhRRRlRpRyRR�R�(((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR`�s t ComponentcBsYeZed�Zd�Zd�Zd�ZeZd�Zd�Z d�Z
d�ZRS(cCs�d}t|d�s6|}t�}|j|�}n||jd<i|jd<i|jd<i|jd<i|jd<d|jd<|dkr�d }n||jd
<|j|�dS(NtIIDRat_interfaces_t_interface_names_t_interface_infos_t_name_to_interface_iid_it_tried_classinfo_s <unknown>t
_object_name_(ROthasattrRtcreateInstanceByContractIDt__dict__Ri(RdtobRCtob_nametcm((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__init__�s
cCs�d|jd<y|jjtd�}Wntk
r?d}nX|dk r�y
|j}Wntk
rrd}nX|r�||jd<tj|�}nd}|dkrLy|j �}Wntk
r�g}nXx1|D])}||jdkr�|j
|�q�q�W|dk r�i}|jd|d<|jd|d<|t|<q�q�x7t|j��D] \}}|j|j
|�q_Wn||jd<dS(NiR�iR�R�R�t_com_classinfo_(R�RaRiRRROt
contractIDR;RNt
getInterfacestqueryInterfaceRTtitemstupdate(Rdt classinfotreal_cidtcontractid_infotinterface_infost
nominated_iidtkeytval((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt _build_all_supported_interfaces_s<
c
Cs |jd}yt|�\}}}}Wn1tk
r\}tjd||�d||<dSX||||f||<|jd}x$t|j��D]} ||| <q�Wx$t|j��D]} ||| <q�Wx$t|j��D]} ||| <q�Wx$t|j��D]} ||| <qWdS(NR�s)Failed to build interface info for %s: %sR�(R�R_RRtinfoRORTtkeys(
RdRCtiisRZRXRYRUtwhytnamesR*((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt_remember_interface_info0s"
c Cs�||jkr|S||jkr2|j|�n|j|}|dkr^|jj|d�S|jj|d�}|\}}}}t||||||�}||j|<||j|j<|S(Ni( R�R�R�RORaRit
_InterfaceR�R*( RdRCt
iface_infot raw_ifaceRZRXRYRUt
new_interface((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyRiHs
cCs�|tkrt|��n|jdj|d�}|dk rD|S|jdj|d�}|dkr�|jr�|j�|jdj|d�}|jdj|d�}|dk r�|Sn|dk r!|jdj|d�}|dkr|j|�|jd|}nt||�Sx`t |jdj
��D]E}y+t||�}|j|jd|<|SWq;tk
rq;Xq;Wtd|j|f��dS(NR�R�R�s*XPCOM component '%s' has no attribute '%s'(
t_special_getattr_namesRbR�RNROR�R�RitgetattrRTtvaluest_iid_R�(RdtattrR[RCRG((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__getattr__es4
cCs�|jj|d�}|dkrQ|jrQ|j�|jdj|d�}n|dk r�|jj|d�}|dkr�|j|�|jd|}nt|||�dSt d|j
|f��dS(NR�R�s*XPCOM component '%s' has no attribute '%s'(R�RNROR�R�R�R�RitsetattrRbR�(RdR�R�RCR[((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__setattr__�s
cCs�y|js|j�nWntk
r:d|jd<nXt|jdj��}y|jd�Wntk
rxnX|j�ddj |�f}|S(NiR�R�tnsISupportssimplementing %sR(
R�R�RR�RTR�tremoveRstsortR'(Rdtiface_namest
iface_desc((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt_get_classinfo_repr_�s
cCs|j�}d|j|fS(Ns<XPCOM component '%s' (%s)>(R�R�(RdR�((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyRk�s(R�R�RR�R�R�RiR�R�R�R�Rk(((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR��s ) $ R�cBs,eZd�Zd�Zd�Zd�ZRS(cCs�||jd<||jd<||jd<||jd<||jd<i|jd<|j|jd<|jj|�t|j��|jd<dS( NRaR�t_property_getters_t_property_setters_t_method_infos_t _methods_R�t_constant_names_(R�R*R�RTR�(RdtcomobjRCRZRXRYRU((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR��s
c
Cs\|tkrt|��nt|jd|d�}|dk rD|S|jdj|d�}|dk rvt||�S|jd}|j|�}|dk r�|\}}t|�dkr�td��n|df}t |j
||�S|jdj|d�} | dk r?t| |j�}||jd|<t||�Std|j
|f��dS( NRaR�R�is)Can't get properties with this many args!R�s*XPCOM component '%s' has no attribute '%s'((R�RbR�R�RORNRR(tRuntimeErrorR
RaRHR�R�(
RdR�RGtunbound_methodRXR�R+tparam_infostargsRB((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR��s,
cCs�||jkr3||jdkr3||j|<dS|jd}|j|�}|dkrwtd|j|f��n|\}}t|�dkr�td��n||ff}t|j||�S(NR�R�s/XPCOM component '%s' can not set attribute '%s'is)Can't set properties with this many args!( R�RNRORbR�R(R�R
Ra(RdR�R�RYR�R+R�treal_param_infos((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR��s"
cCsd|jfS(Ns<XPCOM interface '%s'>(R�(Rd((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyRk�s(R�R�R�R�R�Rk(((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR��s ! cCs
t||�S(N(R�(R�RC((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pytMakeInterfaceResult�st
WeakReferencecBs&eZdZdd�Zdd�ZRS(s�A weak-reference object. You construct a weak reference by passing
any COM object you like. If the object does not support weak
refs, you will get a standard NS_NOINTERFACE exception.
Once you have a weak-reference, you can "call" the object to get
back a strong reference. Eg:
>>> some_ob = components.classes['...']
>>> weak_ref = WeakReference(some_ob)
>>> new_ob = weak_ref() # new_ob is effectively "some_ob" at this point
>>> # EXCEPT: new_ob may be None if some_ob has already died - a
>>> # weak reference does not keep the object alive (that is the point)
You should never hold onto this resulting strong object for a long time,
or else you defeat the purpose of the weak-reference.
cCspt|jt�}t|j�jt�|_|dkrcy
|j}Wqctk
r_t}qcXn||_ dS(N(
R�RaR tGetWeakReferenceR
ROR�RbRR�(RdR�RCtswr((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR�s
cCsk|dkr|j}ny t|jj|�j|�SWn,tk
rf}|jtjkrb�ndSXdS(N( ROR�R�Rat
QueryReferentRterrnoRtNS_ERROR_NULL_POINTER(RdRCtdetails((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt__call__s N(R�R�t__doc__ROR�R�(((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyR��s (((3tosttypesRtloggingtxpcomRRRRtxpcom._xpcomRRRRR R
RRR
RzR{R~R�R�t_just_int_interfacest_just_long_interfacest_just_float_interfacesR|R}R�R)R7R8R:R;R<R=RHtxpcom.xpcom_constsRIRJRKRLRMRSR_R`R�R�R�R�(((sF/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.pyt<module>&s<"@
( @�E