def __init__(self, value):
        assert value is not None, 'broadcast object should not been None'
        self.uuid = str(uuid_pkg.uuid4())
        self.value = value
        self.compressed_size = _manager.register(self.uuid, self.value)
        block_num = (self.compressed_size + BLOCK_SIZE - 1) >> BLOCK_SHIFT
        self.bytes = block_num * BLOCK_SIZE
        logger.info("broadcast %s in %d blocks, %d bytes", self.uuid, block_num, self.compressed_size)