def _before_unpack(self, opts): CField._before_unpack(self, opts) try: opts['length'] = opts['data'].index('\0', opts['offset']) - opts['offset'] + 1 if opts.has_key('max_length'): opts['length'] = min(opts['max_length'], opts['length']) except ValueError: raise UnpackException("Unterminated null string occured.")
def _before_unpack(self, opts): CField._before_unpack(self, opts) try: opts['length'] = opts['data'].index( '\0', opts['offset']) - opts['offset'] + 1 if opts.has_key('max_length'): opts['length'] = min(opts['max_length'], opts['length']) except ValueError: raise UnpackException("Unterminated null string occured.")
def set_value(self, obj, value): if not isinstance(value, str) or value[-1] != '\0': raise ValueError( "NullStringField value must a string with last character == '\\0'." ) return CField.set_value(self, obj, value)
def set_value(self, obj, value): wrapper = ListItemWrapper(value) wrapper._set_action = self.item_set_value wrapper._get_action = self.item_get_value return CField.set_value(self, obj, wrapper)
def __init__(self, idx, subfield, default=[], length=0, **kwargs): CField.__init__(self, idx, default, **dict(kwargs, length=length) ) self.__subfield = subfield
def __init__(self, idx, struct, default=None, **kwargs): CField.__init__(self, idx, default, **kwargs) self._struct_klass = struct
def _retrieve_value(self, opts): (v, offset) = CField._retrieve_value(self, opts) return (v[0], offset)
def pack(self, obj, offset, **opts): value = getattr(obj, self.name) return CField.pack(self, obj, offset, length=len(value), **opts)
def __init__(self, idx, default='', length=0, **kwargs): CField.__init__(self, idx, default, **dict(kwargs, length=length))
def set_value(self, obj, value): if not isinstance(value, str) or value[-1] != '\0': raise ValueError("NullStringField value must a string with last character == '\\0'.") return CField.set_value(self, obj, value)
def __init__(self, idx, default='', length=0, **kwargs): CField.__init__(self, idx, default, **dict(kwargs, length=length) )
def __init__(self, idx, subfield, default=[], length=0, **kwargs): CField.__init__(self, idx, default, **dict(kwargs, length=length)) self.__subfield = subfield