* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class BaseNetworkPackageHandler extends BaseHandler {
- // Error codes
- const SOCKET_ERROR_UNKNOWN = 'unknown_error';
- const SOCKET_ERROR_TRANSPORT_ENDPOINT = 'transport_endpoint';
- const SOCKET_ERROR_UNHANDLED = 'unhandled_package';
- const SOCKET_ERROR_EMPTY_DATA = 'empty_data';
- const PACKAGE_ERROR_INVALID_DATA = 'invalid_data';
- const PACKAGE_ERROR_INCOMPLETE_DATA = 'incomplete_data';
- const PACKAGE_ERROR_INVALID_CONTENT = 'invalid_content';
- const PACKAGE_ERROR_RECIPIENT_MISMATCH = 'recipient_error';
- const PACKAGE_LEVEL_CHECK_OKAY = 'checked_package';
+ // Error codes:
+ // - Socket raw data stream errors
+ const SOCKET_ERROR_UNKNOWN = 'unknown_error'; // Unknown error (should not happen)
+ const SOCKET_ERROR_TRANSPORT_ENDPOINT = 'transport_endpoint'; // Transport endpoint has closed
+ const SOCKET_ERROR_EMPTY_DATA = 'empty_data'; // Other peer has sent nothing
+ const SOCKET_ERROR_INVALID_BASE64_MODULO = 'base64_modulo'; // Length is not modulo 4
+ const SOCKET_ERROR_INVALID_BASE64_MESSAGE = 'base64_message'; // Raw data is not Base64-encoded
+ const SOCKET_ERROR_UNHANDLED = 'unhandled_package'; // Unhandled raw data (not bad)
+
+ // - Package errors
+ const PACKAGE_ERROR_INVALID_DATA = 'invalid_data'; // Invalid data in package found
+ const PACKAGE_ERROR_INCOMPLETE_DATA = 'incomplete_data'; // Incomplete data sent (e.g. field is missing)
+ const PACKAGE_ERROR_INVALID_CONTENT = 'invalid_content'; // Content is invalid (e.g. not well-formed)
+ const PACKAGE_ERROR_RECIPIENT_MISMATCH = 'recipient_error'; // Recipient is not us
+ const PACKAGE_LEVEL_CHECK_OKAY = 'checked_package'; // Package is fine
/**
* Error code from socket
protected function __construct ($className) {
// Call parent constructor
parent::__construct($className);
+
+ // Get an input stream instance
+ $streamInstance = ObjectFactory::createObjectByConfiguredName('node_raw_data_input_stream_class', array($this));
+
+ // Set it in this network-package handler
+ $this->setInputStreamInstance($streamInstance);
}
/**