class TcpClient(TcpConnection):
    """don't use this class directly: derive from it and
       implemnt all needed foo_op -methods"""
    def __init__(self, server, fd, host, addr):
        #(fd, (host, addr)) = xxx_todo_changeme1
        self.id = "%s:%s" % fd.getpeername()
        self.send_buffer = []
        self.server = server
        self.fd = fd
        self.host = host
        self.addr = addr
        self.bridge = Bridge(NegotiationServer(id=server.name), functions=self)
        self.setup()
        self.bridge.setup(
        )  #fire negoation, etc.. (otherwise would be done when first operation is sent)

    def send_string(self, data):
        #CHEAT!: in future check size of message and don't send too much
        #        and put rest to buffer
        self.log(">>>>>>>>>>send>>>>>>>>>>", data)
        if data and not self in self.server.clients2send:
            self.server.clients2send.append(self)
        while data:
            self.send_buffer.append(data[:1024])
            data = data[1024:]