def pump(self, debug=False):
if self.debug or debug:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>sData = readAndDestroy(self.serverIO)<EOL>cData = readAndDestroy(self.clientIO)<EOL>self.client.transport._checkProducer()<EOL>self.server.transport._checkProducer()<EOL>if self.debug or debug:<EOL><INDENT>print('<STR_LIT:.>')<EOL>if cData:<EOL><INDENT>for line in cData.split('<STR_LIT:\r\n>'):<EOL><INDENT>print('<STR_LIT>'+line)<EOL><DEDENT><DEDENT>if sData:<EOL><INDENT>for line in sData.split('<STR_LIT:\r\n>'):<EOL><INDENT>print('<STR_LIT>'+line)<EOL><DEDENT><DEDENT><DEDENT>if cData:<EOL><INDENT>self.server.dataReceived(cData)<EOL><DEDENT>if sData:<EOL><INDENT>self.client.dataReceived(sData)<EOL><DEDENT>if cData or sData:<EOL><INDENT>return True<EOL><DEDENT>if self.server.transport.disconnecting and not self.server.transport.disconnected:<EOL><INDENT>if self.debug or debug:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>self.server.transport.disconnected = True<EOL>self.client.transport.disconnecting = True<EOL>self.client.connectionLost(error.ConnectionDone("<STR_LIT>"))<EOL>return True<EOL><DEDENT>if self.client.transport.disconnecting and not self.client.transport.disconnected:<EOL><INDENT>if self.debug or debug:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>self.client.transport.disconnected = True<EOL>self.server.transport.disconnecting = True<EOL>self.server.connectionLost(error.ConnectionDone("<STR_LIT>"))<EOL>return True<EOL><DEDENT>return False<EOL>
Move data back and forth.

        Returns whether any data was moved.