ircbot/Classes/Protocol/IrcProtocolHandler.php

52 lines
1.3 KiB
PHP

<?php
/**
* The ProtocolHandler for the IRC Protocol.
* @author JPT
* @package Protocol
*/
class Protocol_IrcProtocolHandler extends Protocol_AbstractProtocolHandler {
/**
* 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_IrcProtocolContentObject
*/
public function work() {
$data = $this->buffer_incoming->getNextLine();
return new Protocol_IrcProtocolContentObject($data);
}
/**
* 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 put raw data into the outgoing buffer.
* This function will be removed soon.
* The ProtocolHandler shall take care of this directly.
* @deprecated
* @param string $data
* @return void
*/
public function sendRaw($data) {
$this->buffer_outgoing->addData($data);
}
}
?>