| 148 | |
| 149 | |
| 150 | class ClassDesc(Element): |
| 151 | def __init__(self, stream=None): |
| 152 | Element.__init__(self, stream) |
| 153 | self.description = None |
| 154 | |
| 155 | def decode(self, io): |
| 156 | content = decode_content(io, self.stream) |
| 157 | allowed_content = [NullReference, NewClassDesc, Reference, ProxyClassDesc] |
| 158 | if content.__class__ not in allowed_content: |
| 159 | raise Exception('ClassDesc unserialize failed') |
| 160 | self.description = content |
| 161 | return self |
| 162 | |
| 163 | def encode(self): |
| 164 | encoded = '' |
| 165 | allowed_contents = [NullReference, NewClassDesc, Reference, ProxyClassDesc] |
| 166 | if self.description.__class__ not in allowed_contents: |
| 167 | raise Exception('ClassDesc unserialize failed') |
| 168 | encoded += encode_content(self.description) |
| 169 | return encoded |
| 170 | |
| 171 | def __str__(self): |
| 172 | return print_content(self.description) |
| 173 | |
| 174 | |
| 175 | class EndBlockData(Element): |