55
66from datetime import datetime
77
8+
89class Substitution :
910 def __init__ (self , buf , offset ):
1011 (sub_token , sub_id , sub_type ) = struct .unpack_from ("<BHB" , buf , offset )
@@ -46,6 +47,7 @@ def xml(self, template=None):
4647 else :
4748 print ("Unknown value type" , hex (value .type ))
4849
50+
4951class Value :
5052 def __init__ (self , buf , offset ):
5153 token , string_type , length = struct .unpack_from ("<BBH" , buf , offset )
@@ -56,6 +58,7 @@ def __init__(self, buf, offset):
5658 def xml (self , template = None ):
5759 return self ._val
5860
61+
5962class Attribute :
6063 def __init__ (self , buf , offset ):
6164 struct .unpack_from ("<B" , buf , offset )
@@ -75,13 +78,15 @@ def xml(self, template=None):
7578 val = self ._value .xml (template )
7679 return None if val is None else f'{ self ._name .val } ="{ val } "'
7780
81+
7882class Name :
7983 def __init__ (self , buf , offset ):
8084 hashs , length = struct .unpack_from ("<HH" , buf , offset )
8185
8286 self .val = buf [offset + 4 :offset + 4 + length * 2 ].decode ("utf16" )
8387 self .length = 4 + (length + 1 ) * 2
8488
89+
8590class Element :
8691 def __init__ (self , buf , offset ):
8792 token , dependency_id , length = struct .unpack_from ("<BHI" , buf , offset )
@@ -151,6 +156,7 @@ def xml(self, template=None):
151156 children = (x .xml (template ) for x in self ._children )
152157 return "<{}{}>{}</{}>" .format (self ._name .val , attrs , "" .join (children ), self ._name .val )
153158
159+
154160class ValueSpec :
155161 def __init__ (self , buf , offset , value_offset ):
156162 self .length , self .type , value_eof = struct .unpack_from ("<HBB" , buf , offset )
@@ -159,6 +165,7 @@ def __init__(self, buf, offset, value_offset):
159165 if self .type == 0x21 :
160166 self .template = BinXML (buf , value_offset )
161167
168+
162169class TemplateInstance :
163170 def __init__ (self , buf , offset ):
164171 token , unknown0 , guid , length , next_token = struct .unpack_from ("<BB16sIB" , buf , offset )
@@ -179,6 +186,7 @@ def __init__(self, buf, offset):
179186 def xml (self , template = None ):
180187 return self ._xml .xml (self )
181188
189+
182190class BinXML :
183191 def __init__ (self , buf , offset ):
184192 header_token , major_version , minor_version , flags , next_token = struct .unpack_from ("<BBBBB" , buf , offset )
@@ -195,6 +203,7 @@ def __init__(self, buf, offset):
195203 def xml (self , template = None ):
196204 return self ._element .xml (template )
197205
206+
198207class ResultSet :
199208 def __init__ (self , buf ):
200209 total_size , header_size , event_offset , bookmark_offset , binxml_size = struct .unpack_from ("<IIIII" , buf )
0 commit comments