示例#1
0
    def unpack(self, reader):

        data = Data()
        (oid, file_size, block_size, version, file_type,
         num_blocks) = struct.unpack(
             self.format_str, reader.read(struct.calcsize(self.format_str)))

        blocks = []
        for i in range(num_blocks):
            (block_id, version, offset, length, serverid, ip,
             port) = struct.unpack(
                 self.child_format_str,
                 reader.read(struct.calcsize(self.child_format_str)))
            ip = socket.inet_ntoa(ip)
            block_data = Data(
                params={
                    'block_id': block_id,
                    'version': version,
                    'offset': offset,
                    'length': length,
                    'serverid': serverid,
                    'ip': ip,
                    'port': port
                })
            blocks.append(block_data)

        data.oid = oid
        data.file_size = file_size
        data.version = version
        data.block_size = block_size
        data.file_type = file_type
        data.blocks = blocks
        data.type = packet_types.FS_GET_OK

        return data
示例#2
0
 def unpack(self, reader):
     data = Data()
     (oid,block_id) = struct.unpack(self.format_str, reader.read(struct.calcsize(self.format_str)))
     data.oid = oid
     data.block_id = block_id
     data.type = packet_types.FS_GET_BLOCK_REPLICAS
     return data
示例#3
0
 def unpack(self,reader):
     oid = struct.unpack(self.format_str, reader.read(struct.calcsize(self.format_str)))
     data = Data()        
     data.oid = oid
     data.type = packet_types.FS_DELETE_DONE
     
     return data
示例#4
0
 def unpack(self,reader):
     (oid,block_id) = struct.unpack(self.format_str, reader.read(struct.calcsize(self.format_str)))
     data = Data()        
     data.oid = oid
     data.block_id = block_id
     data.type = packet_types.FS_BLOCK_DELETED
     
     return data
示例#5
0
    def unpack(self, reader):
        oid = struct.unpack(self.format_str,
                            reader.read(struct.calcsize(self.format_str)))
        data = Data()
        data.oid = oid
        data.type = packet_types.FS_DELETE_DONE

        return data
示例#6
0
 def unpack(self, reader):
     data = Data()
     (oid, block_id) = struct.unpack(
         self.format_str, reader.read(struct.calcsize(self.format_str)))
     data.oid = oid
     data.block_id = block_id
     data.type = packet_types.FS_GET_BLOCK_REPLICAS
     return data
示例#7
0
    def unpack(self, reader):
        (oid, block_id) = struct.unpack(
            self.format_str, reader.read(struct.calcsize(self.format_str)))
        data = Data()
        data.oid = oid
        data.block_id = block_id
        data.type = packet_types.FS_BLOCK_DELETED

        return data
示例#8
0
 def unpack(self, reader):
     (oid,version,length) = struct.unpack(self.format_str, reader.read(struct.calcsize(self.format_str)))
     data = Data()
     data.oid = oid
     data.version = version
     
     data.blocks = {}
     
     for i in range(length):
         (key,val) = struct.unpack(self.child_format_str, reader.read(struct.calcsize(self.child_format_str)))
         data.blocks[key] = val
     
     data.type = packet_types.FS_OID_BLOCKS
     return data
示例#9
0
 def unpack(self, reader):
     (oid,block_id,length) = struct.unpack(self.format_str, reader.read(struct.calcsize(self.format_str)))
     data = Data()
     data.oid = oid
     data.block_id = block_id
     
     data.replicas = {}
     
     for i in range(length):
         (key,val) = struct.unpack(self.child_format_str, reader.read(struct.calcsize(self.child_format_str)))
         data.replicas[key] = val
     
     data.type = packet_types.FS_BLOCK_REPLICAS
     return data
示例#10
0
    def unpack(self, reader):
        (oid, version,
         length) = struct.unpack(self.format_str,
                                 reader.read(struct.calcsize(self.format_str)))
        data = Data()
        data.oid = oid
        data.version = version

        data.blocks = {}

        for i in range(length):
            (key, val) = struct.unpack(
                self.child_format_str,
                reader.read(struct.calcsize(self.child_format_str)))
            data.blocks[key] = val

        data.type = packet_types.FS_OID_BLOCKS
        return data
示例#11
0
    def unpack(self, reader):
        (oid, block_id,
         length) = struct.unpack(self.format_str,
                                 reader.read(struct.calcsize(self.format_str)))
        data = Data()
        data.oid = oid
        data.block_id = block_id

        data.replicas = {}

        for i in range(length):
            (key, val) = struct.unpack(
                self.child_format_str,
                reader.read(struct.calcsize(self.child_format_str)))
            data.replicas[key] = val

        data.type = packet_types.FS_BLOCK_REPLICAS
        return data
示例#12
0
 def unpack(self,reader):
 
     data = Data()        
     (oid,file_size,block_size, version,file_type,num_blocks) = struct.unpack(self.format_str,reader.read(struct.calcsize(self.format_str)))
     
     blocks = []
     for i in range(num_blocks):
         (block_id, version, offset, length, serverid, ip, port) = struct.unpack(self.child_format_str, reader.read(struct.calcsize(self.child_format_str)))
         ip = socket.inet_ntoa(ip)
         block_data = Data(params={'block_id':block_id,'version':version,'offset':offset,'length':length,'serverid':serverid,'ip':ip,'port':port})
         blocks.append(block_data)
         
     data.oid = oid
     data.file_size = file_size
     data.version = version
     data.block_size = block_size
     data.file_type = file_type
     data.blocks = blocks
     data.type = packet_types.FS_GET_OK
     
     return data
示例#13
0
 def unpack(self,data):
     data = Data()
     (oid,) = struct.unpack(self.format_str, reader.read(struct.calcsize(self.format_str)))
     data.oid = oid
     return data
示例#14
0
 def unpack(self, data):
     data = Data()
     (oid, ) = struct.unpack(self.format_str,
                             reader.read(struct.calcsize(self.format_str)))
     data.oid = oid
     return data