VirtualBox

Changeset 28675 in vbox for trunk/src/VBox/Main/webservice


Ignore:
Timestamp:
Apr 23, 2010 6:04:09 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
60546
Message:

Python WS bridge: handle octet arrays, simplification

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/webservice/websrv-python.xsl

    r23552 r28675  
    5454    <xsl:when test="$type='unsigned long long'">UnsignedLong</xsl:when>
    5555    <xsl:when test="$type='result'">UnsignedInt</xsl:when>
     56    <xsl:when test="$type='octet'">Octet</xsl:when>
    5657    <xsl:when test="$type='$unknown'">IUnknown</xsl:when>
    5758    <xsl:when test="$type='$dispatched'">IUnknown</xsl:when>
     
    549550
    550551  def __str__(self):
    551        if self.handle: 
     552       if self.handle:
    552553         return "true"
    553554       else:
     
    570571  def __int__(self):
    571572      if self.handle:
    572         return 1 
     573        return 1
    573574      else:
    574575        return 0
     
    576577  def __long__(self):
    577578      if self.handle:
    578         return 1 
     579        return 1
    579580      else:
    580581        return 0
     
    606607      raise TypeError, "iteration over non-sequence"
    607608
    608 class UnsignedInt:
    609   def __init__(self, mgr, handle, isarray = False):
    610        self.handle = handle
    611        self.mgr = mgr
    612        self.isarray = isarray
     609class Number:
     610  def __init__(self, mgr, handle, isarray = False):
     611       self.handle = handle
     612       self.mgr = mgr
     613       self.isarray = isarray
     614
     615  def __next(self):
     616      if self.isarray:
     617          return self.handle.__next()
     618      raise TypeError, "iteration over non-sequence"
     619
     620  def __size(self):
     621      if self.isarray:
     622          return self.handle.__size()
     623      raise TypeError, "iteration over non-sequence"
     624
     625  def __len__(self):
     626      if self.isarray:
     627          return self.handle.__len__()
     628      raise TypeError, "iteration over non-sequence"
    613629
    614630  def __str__(self):
     
    621637       return long(self.handle)
    622638
    623   def __next(self):
    624       if self.isarray:
    625           return self.handle.__next()
    626       raise TypeError, "iteration over non-sequence"
    627 
    628   def __size(self):
    629       if self.isarray:
    630           return self.handle.__size()
    631       raise TypeError, "iteration over non-sequence"
    632 
    633   def __len__(self):
    634       if self.isarray:
    635           return self.handle.__len__()
    636       raise TypeError, "iteration over non-sequence"
    637 
    638   def __getitem__(self, index):
    639       if self.isarray:
    640           return UnsignedInt(self.mgr, self.handle[index])
    641       raise TypeError, "iteration over non-sequence"
    642 
    643 
    644 class Int:
    645   def __init__(self, mgr, handle, isarray = False):
    646        self.handle = handle
    647        self.mgr = mgr
    648        self.isarray = isarray
    649 
    650   def __next(self):
    651       if self.isarray:
    652           return self.handle.__next()
    653       raise TypeError, "iteration over non-sequence"
    654 
    655   def __size(self):
    656       if self.isarray:
    657           return self.handle.__size()
    658       raise TypeError, "iteration over non-sequence"
    659 
    660   def __len__(self):
    661       if self.isarray:
    662           return self.handle.__len__()
    663       raise TypeError, "iteration over non-sequence"
    664 
    665   def __getitem__(self, index):
    666       if self.isarray:
    667           return Int(self.mgr, self.handle[index])
    668       raise TypeError, "iteration over non-sequence"
    669 
    670   def __str__(self):
    671        return str(self.handle)
    672 
    673   def __int__(self):
    674        return int(self.handle)
    675 
    676   def __long__(self):
    677        return long(self.handle)
    678 
    679 class UnsignedShort:
    680   def __init__(self, mgr, handle, isarray = False):
    681        self.handle = handle
    682        self.mgr = mgr
    683        self.isarray = isarray
    684 
    685   def __str__(self):
    686        return str(self.handle)
    687 
    688   def __int__(self):
    689        return int(self.handle)
    690 
    691   def __long__(self):
    692        return long(self.handle)
    693 
    694   def __next(self):
    695       if self.isarray:
    696           return self.handle.__next()
    697       raise TypeError, "iteration over non-sequence"
    698 
    699   def __size(self):
    700       if self.isarray:
    701           return self.handle.__size()
    702       raise TypeError, "iteration over non-sequence"
    703 
    704   def __len__(self):
    705       if self.isarray:
    706           return self.handle.__len__()
    707       raise TypeError, "iteration over non-sequence"
    708 
    709   def __getitem__(self, index):
    710       if self.isarray:
    711           return UnsignedShort(self.mgr, self.handle[index])
    712       raise TypeError, "iteration over non-sequence"
    713 
    714 class Short:
    715   def __init__(self, mgr, handle, isarray = False):
    716        self.handle = handle
    717        self.mgr = mgr
    718        self.isarray = isarray
    719 
    720   def __str__(self):
    721        return str(self.handle)
    722 
    723   def __int__(self):
    724        return int(self.handle)
    725 
    726   def __long__(self):
    727        return long(self.handle)
    728 
    729   def __next(self):
    730       if self.isarray:
    731           return self.handle.__next()
    732       raise TypeError, "iteration over non-sequence"
    733 
    734   def __size(self):
    735       if self.isarray:
    736           return self.handle.__size()
    737       raise TypeError, "iteration over non-sequence"
    738 
    739   def __len__(self):
    740       if self.isarray:
    741           return self.handle.__len__()
    742       raise TypeError, "iteration over non-sequence"
    743 
    744   def __getitem__(self, index):
    745       if self.isarray:
    746           return Short(self.mgr, self.handle[index])
    747       raise TypeError, "iteration over non-sequence"
    748 
    749 class UnsignedLong:
    750   def __init__(self, mgr, handle, isarray = False):
    751        self.handle = handle
    752        self.mgr = mgr
    753        self.isarray = isarray
    754 
    755   def __str__(self):
    756        return str(self.handle)
    757 
    758   def __int__(self):
    759        return int(self.handle)
    760 
    761   def __long__(self):
    762        return long(self.handle)
    763 
    764   def __next(self):
    765       if self.isarray:
    766           return self.handle.__next()
    767       raise TypeError, "iteration over non-sequence"
    768 
    769   def __size(self):
    770       if self.isarray:
    771           return self.handle.__size()
    772       raise TypeError, "iteration over non-sequence"
    773 
    774   def __len__(self):
    775       if self.isarray:
    776           return self.handle.__len__()
    777       raise TypeError, "iteration over non-sequence"
    778 
    779   def __getitem__(self, index):
    780       if self.isarray:
    781           return UnsignedLong(self.mgr, self.handle[index])
    782       raise TypeError, "iteration over non-sequence"
    783 
    784 class Long:
    785   def __init__(self, mgr, handle, isarray = False):
    786        self.handle = handle
    787        self.mgr = mgr
    788        self.isarray = isarray
    789 
    790   def __str__(self):
    791        return str(self.handle)
    792 
    793   def __int__(self):
    794        return int(self.handle)
    795 
    796   def __long__(self):
    797        return int(self.handle)
    798 
    799   def __next(self):
    800       if self.isarray:
    801           return self.handle.__next()
    802       raise TypeError, "iteration over non-sequence"
    803 
    804   def __size(self):
    805       if self.isarray:
    806           return self.handle.__size()
    807       raise TypeError, "iteration over non-sequence"
    808 
    809   def __len__(self):
    810       if self.isarray:
    811           return self.handle.__len__()
    812       raise TypeError, "iteration over non-sequence"
    813 
    814   def __getitem__(self, index):
    815       if self.isarray:
    816           return Long(self.mgr, self.handle[index])
    817       raise TypeError, "iteration over non-sequence"
    818 
    819 class Double:
    820   def __init__(self, mgr, handle, isarray = False):
    821        self.handle = handle
    822        self.mgr = mgr
    823        self.isarray = isarray
    824 
    825   def __str__(self):
    826        return str(self.handle)
    827 
    828   def __int__(self):
    829        return int(self.handle)
    830 
    831639  def __float__(self):
    832640       return float(self.handle)
    833641
    834   def __next(self):
    835       if self.isarray:
    836           return self.handle.__next()
    837       raise TypeError, "iteration over non-sequence"
    838 
    839   def __size(self):
    840       if self.isarray:
    841           return self.handle.__size()
    842       raise TypeError, "iteration over non-sequence"
    843 
    844   def __len__(self):
    845       if self.isarray:
    846           return self.handle.__len__()
    847       raise TypeError, "iteration over non-sequence"
     642import struct
     643
     644class Octet(Number):
     645  def __init__(self, mgr, handle, isarray = False):
     646       self.handle = handle
     647       self.mgr = mgr
     648       self.isarray = isarray
     649
     650  def __getitem__(self, index):
     651      if self.isarray:
     652          return Octet(self.mgr, self.handle[index])
     653      raise TypeError, "iteration over non-sequence"
     654
     655  def __str__(self):
     656       if self.isarray:
     657           # array of octets is binary data
     658           list = map (None, self.handle)
     659           return struct.pack("%dB" % (len(list)), *list)
     660       else:
     661           return str(self.handle)
     662
     663class UnsignedInt(Number):
     664  def __init__(self, mgr, handle, isarray = False):
     665       self.handle = handle
     666       self.mgr = mgr
     667       self.isarray = isarray
     668
     669  def __getitem__(self, index):
     670      if self.isarray:
     671          return UnsignedInt(self.mgr, self.handle[index])
     672      raise TypeError, "iteration over non-sequence"
     673
     674
     675class Int(Number):
     676  def __init__(self, mgr, handle, isarray = False):
     677       self.handle = handle
     678       self.mgr = mgr
     679       self.isarray = isarray
     680
     681  def __getitem__(self, index):
     682      if self.isarray:
     683          return Int(self.mgr, self.handle[index])
     684      raise TypeError, "iteration over non-sequence"
     685
     686class UnsignedShort(Number):
     687  def __init__(self, mgr, handle, isarray = False):
     688       self.handle = handle
     689       self.mgr = mgr
     690       self.isarray = isarray
     691
     692  def __getitem__(self, index):
     693      if self.isarray:
     694          return UnsignedShort(self.mgr, self.handle[index])
     695      raise TypeError, "iteration over non-sequence"
     696
     697class Short(Number):
     698  def __init__(self, mgr, handle, isarray = False):
     699       self.handle = handle
     700       self.mgr = mgr
     701       self.isarray = isarray
     702
     703  def __getitem__(self, index):
     704      if self.isarray:
     705          return Short(self.mgr, self.handle[index])
     706      raise TypeError, "iteration over non-sequence"
     707
     708class UnsignedLong(Number):
     709  def __init__(self, mgr, handle, isarray = False):
     710       self.handle = handle
     711       self.mgr = mgr
     712       self.isarray = isarray
     713
     714  def __getitem__(self, index):
     715      if self.isarray:
     716          return UnsignedLong(self.mgr, self.handle[index])
     717      raise TypeError, "iteration over non-sequence"
     718
     719class Long(Number):
     720  def __init__(self, mgr, handle, isarray = False):
     721       self.handle = handle
     722       self.mgr = mgr
     723       self.isarray = isarray
     724
     725  def __getitem__(self, index):
     726      if self.isarray:
     727          return Long(self.mgr, self.handle[index])
     728      raise TypeError, "iteration over non-sequence"
     729
     730class Double(Number):
     731  def __init__(self, mgr, handle, isarray = False):
     732       self.handle = handle
     733       self.mgr = mgr
     734       self.isarray = isarray
    848735
    849736  def __getitem__(self, index):
     
    852739      raise TypeError, "iteration over non-sequence"
    853740
    854 class Float:
    855   def __init__(self, mgr, handle, isarray = False):
    856        self.handle = handle
    857        self.mgr = mgr
    858        self.isarray = isarray
    859 
    860   def __str__(self):
    861        return str(self.handle)
    862 
    863   def __int__(self):
    864        return int(self.handle)
    865 
    866   def __float__(self):
    867        return float(self.handle)
    868 
    869   def __next(self):
    870       if self.isarray:
    871           return self.handle.__next()
    872       raise TypeError, "iteration over non-sequence"
    873 
    874   def __size(self):
    875       if self.isarray:
    876           return self.handle.__size()
    877       raise TypeError, "iteration over non-sequence"
    878 
    879   def __len__(self):
    880       if self.isarray:
    881           return self.handle.__len__()
    882       raise TypeError, "iteration over non-sequence"
     741class Float(Number):
     742  def __init__(self, mgr, handle, isarray = False):
     743       self.handle = handle
     744       self.mgr = mgr
     745       self.isarray = isarray
    883746
    884747  def __getitem__(self, index):
     
    895758  def __nonzero__(self):
    896759      if self.handle != "":
    897            return True 
     760           return True
    898761      else:
    899762           return False
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette