def METHOD_NAME(self, channel: str, topic: str, target: str, headers: dict, stream: Stream) -> StreamFuture:
    tx_task = TxTask(channel, topic, target, headers, stream)
    with self.map_lock:
        self.tx_task_map[tx_task.sid] = tx_task
    future = StreamFuture(tx_task.sid)
    future.set_size(stream.get_size())
    tx_task.stream_future = future
    tx_task.task_future = stream_thread_pool.submit(self._transmit_task, tx_task)
    return future