Ejemplo n.º 1
0
	def dump(self, entries, f):
		pb = pagemap_head()
		for item in entries:
			pb2dict.dict2pb(item, pb)
			pb_str = pb.SerializeToString()
			size = len(pb_str)
			f.write(struct.pack('i', size))
			f.write(pb_str)

			pb = pagemap_entry()
Ejemplo n.º 2
0
	def dump(self, entries, f):
		pb = pagemap_head()
		for item in entries:
			pb2dict.dict2pb(item, pb)
			pb_str = pb.SerializeToString()
			size = len(pb_str)
			f.write(struct.pack('i', size))
			f.write(pb_str)

			pb = pagemap_entry()
Ejemplo n.º 3
0
	def dump(self, extra, f, pb):
		entry = pb2dict.pb2dict(pb)
		for i in range (0, len(extra), 2):
			msg = ipc_msg()
			pb2dict.dict2pb(extra[i], msg)
			msg_str = msg.SerializeToString()
			size = len(msg_str)
			f.write(struct.pack('i', size))
			f.write(msg_str)
			rounded = round_up(msg.msize, sizeof_u64)
			data = extra[i + 1].decode('base64')
			f.write(data[:msg.msize])
			f.write('\0' * (rounded - msg.msize))
Ejemplo n.º 4
0
 def dump(self, extra, f, pb):
     entry = pb2dict.pb2dict(pb)
     for i in range(0, len(extra), 2):
         msg = ipc_msg()
         pb2dict.dict2pb(extra[i], msg)
         msg_str = msg.SerializeToString()
         size = len(msg_str)
         f.write(struct.pack('i', size))
         f.write(msg_str)
         rounded = round_up(msg.msize, sizeof_u64)
         data = extra[i + 1].decode('base64')
         f.write(data[:msg.msize])
         f.write('\0' * (rounded - msg.msize))
Ejemplo n.º 5
0
	def dump(self, entries, f):
		"""
		Convert criu image entries from dict(json) format to binary.
		Takes a list of entries and a file-like object to write entries
		in binary format to.
		"""
		for entry in entries:
			extra = entry.pop('extra', None)

			# Write payload
			pb = self.payload()
			pb2dict.dict2pb(entry, pb)
			pb_str = pb.SerializeToString()
			size = len(pb_str)
			f.write(struct.pack('i', size))
			f.write(pb_str)

			# Write extra
			if self.extra_handler and extra:
				self.extra_handler.dump(extra, f, pb)
Ejemplo n.º 6
0
	def dump(self, entries, f):
		"""
		Convert criu image entries from dict(json) format to binary.
		Takes a list of entries and a file-like object to write entries
		in binary format to.
		"""
		for entry in entries:
			extra = entry.pop('extra', None)

			# Write payload
			pb = self.payload()
			pb2dict.dict2pb(entry, pb)
			pb_str = pb.SerializeToString()
			size = len(pb_str)
			f.write(struct.pack('i', size))
			f.write(pb_str)

			# Write extra
			if self.extra_handler and extra:
				self.extra_handler.dump(extra, f, pb)
Ejemplo n.º 7
0
    def dump(self, entries, f):
        pb = ghost_file_entry()
        item = entries.pop(0)
        pb2dict.dict2pb(item, pb)
        pb_str = pb.SerializeToString()
        size = len(pb_str)
        f.write(struct.pack('i', size))
        f.write(pb_str)

        if pb.chunks:
            for item in entries:
                pb = ghost_chunk_entry()
                pb2dict.dict2pb(item, pb)
                pb_str = pb.SerializeToString()
                size = len(pb_str)
                f.write(struct.pack('i', size))
                f.write(pb_str)
                f.write(item['extra'].decode('base64'))
        else:
            f.write(item['extra'].decode('base64'))
Ejemplo n.º 8
0
	def dump(self, entries, f):
		pb = ghost_file_entry()
		item = entries.pop(0)
		pb2dict.dict2pb(item, pb)
		pb_str = pb.SerializeToString()
		size = len(pb_str)
		f.write(struct.pack('i', size))
		f.write(pb_str)

		if pb.chunks:
			for item in entries:
				pb = ghost_chunk_entry()
				pb2dict.dict2pb(item, pb)
				pb_str = pb.SerializeToString()
				size = len(pb_str)
				f.write(struct.pack('i', size))
				f.write(pb_str)
				f.write(item['extra'].decode('base64'))
		else:
			f.write(item['extra'].decode('base64'))