String
String
Boolean
UnsignedInt
Double
Float
Int
Long
Short
UnsignedShort
UnsignedLong
UnsignedInt
Octet
IUnknown
(
self.mgr,
)
def (self):
req=_RequestMsg()
req._this=self.handle
val=self.mgr.getPort()._(req)
return
def (self, value):
req=_RequestMsg()
req._this=self.handle
if type(value) in [int, bool, basestring, str, tuple, list]:
req._ = value
else:
req._ = value.handle
self.mgr.getPort()._(req)
class :
def __init__(self, mgr, array):
self.array = array
self.mgr = mgr
def __next(self):
return self.array.__next()
def __size(self):
return self.array._array.__size()
def __len__(self):
return self.array._array.__len__()
def __getitem__(self, index):
return (self.mgr, self.array._array[index])
class ():
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
if handle is None:
raise Exception("bad handle: "+str(handle))
self.handle = handle
self.isarray = isarray
if self.isarray:
for strHnd in handle:
mgr.register(strHnd)
else:
mgr.register(self.handle)
def __del__(self):
self.releaseRemote()
def releaseRemote(self):
try:
if self.handle is not None:
if self.isarray:
for strHnd in self.handle:
self.mgr.unregister(strHnd)
else:
self.mgr.unregister(self.handle)
self.handle = None;
except:
pass
def __next(self):
if self.isarray:
return self.handle.__next()
raise TypeError("iteration over non-sequence")
def __size(self):
if self.isarray:
return self.handle.__size()
raise TypeError("iteration over non-sequence")
def __len__(self):
if self.isarray:
return self.handle.__len__()
raise TypeError("iteration over non-sequence")
def __getitem__(self, index):
if self.isarray:
return (self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
def __str__(self):
if self.isarray:
return str(self.handle)
else:
return self.handle
def isValid(self):
return self.handle != None and self.handle != ''
def __getattr__(self,name):
hndl = ._Attrs_.get(name, None)
if hndl != None:
if hndl[0] != None:
return hndl[0](self)
else:
raise AttributeError
else:
return .__getattr__(self, name)
def __setattr__(self, name, val):
hndl = ._Attrs_.get(name, None)
if (hndl != None and hndl[1] != None):
hndl[1](self,val)
else:
self.__dict__[name] = val
readonly attribute ::
read/write attribute ::
_Attrs_={
'':[
,
None
,
]
,
}
class :
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
self.isarray = isarray
if isarray:
self.handle = handle
else:
self. =
(self.mgr, handle._)
pass
def (self):
return self.
def (self):
raise Error('setters not supported')
def __next(self):
if self.isarray:
return self.handle.__next()
raise TypeError("iteration over non-sequence")
def __size(self):
if self.isarray:
return self.handle.__size()
raise TypeError("iteration over non-sequence")
def __len__(self):
if self.isarray:
return self.handle.__len__()
raise TypeError("iteration over non-sequence")
def __getitem__(self, index):
if self.isarray:
return (self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
req=_RequestMsg()
req._this=self.handle
req._=
val=self.mgr.getPort()._(req)
return
,
,
def (self
,
):
_None
class :
def __init__(self,mgr,handle):
self.mgr=mgr
if isinstance(handle,basestring):
self.handle=._ValueMap[handle]
else:
self.handle=handle
def __eq__(self,other):
if isinstance(other,):
return self.handle == other.handle
if isinstance(other,int):
return self.handle == other
if isinstance(other,basestring):
return str(self) == other
return False
def __ne__(self,other):
if isinstance(other,):
return self.handle != other.handle
if isinstance(other,int):
return self.handle != other
if isinstance(other,basestring):
return str(self) != other
return True
def __str__(self):
return ._NameMap[self.handle]
def __int__(self):
return self.handle
_NameMap={
:'',
}
_ValueMap={
'':,
}
=
# Copyright (C) 2008-2023 Oracle and/or its affiliates.
#
# This file is part of a free software library; you can redistribute
# it and/or modify it under the terms of the GNU Lesser General
# Public License version 2.1 as published by the Free Software
# Foundation and shipped in the "COPYING.LIB" file with this library.
# The library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY of any kind.
#
# Oracle LGPL Disclaimer: For the avoidance of doubt, except that if
# any license choice other than GPL or LGPL is available it will
# apply instead, Oracle elects to use only the Lesser General Public
# License version 2.1 (LGPLv2) at this time for any software where
# a choice of LGPL license versions is made available with the
# language indicating that LGPLv2 or any later version may be used,
# or where a choice of which version of the LGPL is applied is
# otherwise unspecified.
#
# SPDX-License-Identifier: LGPL-2.1-only
#
#
# This file is autogenerated from VirtualBox.xidl, DO NOT EDIT!
#
# Works only with ZSI 2.0 generated stubs (part of the VirtualBox SDK).
from VirtualBox_client import *
class ObjectRefManager:
def __init__(self, sessionmgr):
self.map = {}
self.sessionmgr = sessionmgr
def register(self, handle):
if handle == None:
return
c = self.map.get(handle,0)
c = c + 1
self.map[handle]=c
def unregister(self, handle):
if handle == None:
return
c = self.map.get(handle,-1)
if c == -1:
raise Error('wrong refcount')
c = c - 1
if c == 0:
try:
req=IManagedObjectRef_releaseRequestMsg()
req._this=handle
self.sessionmgr.getPort().IManagedObjectRef_release(req)
except:
pass
del self.map[handle]
else:
self.map[handle] = c
class String:
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __next(self):
if self.isarray:
return self.handle.__next()
raise TypeError("iteration over non-sequence")
def __size(self):
if self.isarray:
return self.handle.__size()
raise TypeError("iteration over non-sequence")
def __len__(self):
if self.isarray:
return self.handle.__len__()
raise TypeError("iteration over non-sequence")
def __getitem__(self, index):
if self.isarray:
return String(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
def __str__(self):
return str(self.handle)
def __eq__(self,other):
if self.isarray:
return isinstance(other,String) and self.handle == other.handle
if isinstance(other,String):
return self.handle == other.handle
if isinstance(other,basestring):
return self.handle == other
return False
def __ne__(self,other):
if self.isarray:
return not isinstance(other,String) or self.handle != other.handle
if isinstance(other,String):
return self.handle != other.handle
if isinstance(other,basestring):
return self.handle != other
return True
def __add__(self,other):
return str(self.handle)+str(other)
class Boolean:
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
if self.handle == "false":
self.handle = None
self.mgr = mgr
self.isarray = isarray
def __str__(self):
if self.handle:
return "true"
else:
return "false"
def __eq__(self,other):
if isinstance(other,Bool):
return self.handle == other.value
if isinstance(other,bool):
return self.handle == other
return False
def __ne__(self,other):
if isinstance(other,Bool):
return self.handle != other.handle
if isinstance(other,bool):
return self.handle != other
return True
def __int__(self):
if self.handle:
return 1
else:
return 0
def __long__(self):
if self.handle:
return 1
else:
return 0
def __nonzero__(self):
if self.handle:
return True
else:
return False
def __next(self):
if self.isarray:
return self.handle.__next()
raise TypeError("iteration over non-sequence")
def __size(self):
if self.isarray:
return self.handle.__size()
raise TypeError("iteration over non-sequence")
def __len__(self):
if self.isarray:
return self.handle.__len__()
raise TypeError("iteration over non-sequence")
def __getitem__(self, index):
if self.isarray:
return Boolean(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class Number:
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __next(self):
if self.isarray:
return self.handle.__next()
raise TypeError("iteration over non-sequence")
def __size(self):
if self.isarray:
return self.handle.__size()
raise TypeError("iteration over non-sequence")
def __len__(self):
if self.isarray:
return self.handle.__len__()
raise TypeError("iteration over non-sequence")
def __str__(self):
return str(self.handle)
def __int__(self):
return int(self.handle)
def __long__(self):
return long(self.handle)
def __float__(self):
return float(self.handle)
def __lt__(self, other):
if self.isarray:
return NotImplemented
else:
return self.handle < other
def __le__(self, other):
if self.isarray:
return NotImplemented
else:
return self.handle <= other
def __eq__(self, other):
return self.handle == other
def __ne__(self, other):
return self.handle != other
def __gt__(self, other):
if self.isarray:
return NotImplemented
else:
return self.handle > other
def __ge__(self, other):
if self.isarray:
return NotImplemented
else:
return self.handle >= other
class Octet:
def __init__(self, mgr, handle, isarray = False):
self.mgr = mgr
self.isarray = isarray
if isarray:
self.handle = mgr.decodebase64(handle)
else:
raise TypeError("only octet arrays")
def __getitem__(self, index):
return self.handle[index]
def __str__(self):
return str(self.handle)
def __len__(self):
return self.handle.__len__()
class UnsignedInt(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return UnsignedInt(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class Int(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return Int(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class UnsignedShort(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return UnsignedShort(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class Short(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return Short(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class UnsignedLong(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return UnsignedLong(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class Long(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return Long(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class Double(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return Double(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class Float(Number):
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __getitem__(self, index):
if self.isarray:
return Float(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
class IUnknown:
def __init__(self, mgr, handle, isarray = False):
self.handle = handle
self.mgr = mgr
self.isarray = isarray
def __nonzero__(self):
if self.handle != "":
return True
else:
return False
def __next(self):
if self.isarray:
return self.handle.__next()
raise TypeError("iteration over non-sequence")
def __size(self):
if self.isarray:
return self.handle.__size()
raise TypeError("iteration over non-sequence")
def __len__(self):
if self.isarray:
return self.handle.__len__()
raise TypeError("iteration over non-sequence")
def __getitem__(self, index):
if self.isarray:
return IUnknown(self.mgr, self.handle[index])
raise TypeError("iteration over non-sequence")
def __str__(self):
return str(self.handle)
def __eq__(self, other):
return self.handle == other
def __ne__(self, other):
return self.handle != other
def __getattr__(self,attr):
if self.__class__.__dict__.get(attr) != None:
return self.__class__.__dict__.get(attr)
if self.__dict__.get(attr) != None:
return self.__dict__.get(attr)
raise AttributeError
import base64
class IWebsessionManager2(IWebsessionManager, ObjectRefManager):
def __init__(self, url):
self.url = url
self.port = None
self.handle = None
self.mgr = self
ObjectRefManager.__init__(self, self.mgr)
def getPort(self):
if self.port is None:
try:
self.port = vboxServiceLocator().getvboxPortType(self.url)
except:
self.port = vboxServiceLocator().getvboxServicePort(self.url)
return self.port
def decodebase64(self, str):
return base64.decodestring(str)
def encodebase64(self, str):
return base64.encodestring(str)