2010-11-28 03:45:25 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* A 1:1 passthrough handler
|
|
|
|
* @author JPT
|
|
|
|
* @package Protocol
|
|
|
|
*/
|
|
|
|
class Protocol_BotProtocolHandler extends Protocol_AbstractProtocolHandler {
|
|
|
|
|
|
|
|
/**
|
2010-12-08 17:47:04 +01:00
|
|
|
* Is called by the constructor.
|
|
|
|
* Shall create the two buffers and set them up.
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function createBuffers() {
|
|
|
|
$linebreak = "\r\n";
|
|
|
|
$this->buffer_incoming = new Misc_Buffer($linebreak);
|
|
|
|
$this->buffer_outgoing = new Misc_Buffer($linebreak);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Main worker function. It will be called in a loop.
|
|
|
|
* The returned ContentObject will be passed to the client.
|
|
|
|
* @return Protocol_BotProtocolContentObject
|
2010-11-28 03:45:25 +01:00
|
|
|
*/
|
2010-12-08 17:47:04 +01:00
|
|
|
public function work() {
|
|
|
|
$data = $this->buffer_incoming->getNextLine();
|
2010-11-28 03:45:25 +01:00
|
|
|
return new Protocol_BotProtocolContentObject($data);
|
|
|
|
}
|
2010-12-08 17:47:04 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns whether there is work to be done.
|
|
|
|
* Important in order to assure that a ContentObject is created and passed to the Client.
|
|
|
|
* @return boolean
|
|
|
|
*/
|
|
|
|
public function canWork() {
|
|
|
|
return $this->buffer_incoming->hasLines();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Will be replaced soon. Passes raw data into the outgoing buffer.
|
|
|
|
* @deprecated
|
|
|
|
* @param string $data
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function sendRaw($data) {
|
|
|
|
$this->buffer_incoming->addData($data);
|
|
|
|
}
|
|
|
|
|
2010-11-28 03:45:25 +01:00
|
|
|
}
|
|
|
|
?>
|