/**
  * Sending request to oXD server via socket
  *
  * @param  string  $data
  * @param  int  $char_count
  * @return object
  */
 public function oxd_socket_request($data, $char_count = 8192)
 {
     if (!(self::$socket = stream_socket_client('127.0.0.1:' . Oxd_RP_config::$oxd_host_port, $errno, $errstr, STREAM_CLIENT_PERSISTENT))) {
         $this->log("Client: socket::socket_connect is not connected, error: ", $errstr);
         die($errno);
     } else {
         $this->log("Client: socket::socket_connect", "socket connected");
     }
     $this->log("Client: oxd_socket_request", fwrite(self::$socket, $data));
     fwrite(self::$socket, $data);
     $result = fread(self::$socket, $char_count);
     if ($result) {
         $this->log("Client: oxd_socket_response", $result);
     } else {
         $this->log("Client: oxd_socket_response", 'Error socket reading process.');
     }
     if (fclose(self::$socket)) {
         $this->log("Client: oxd_socket_connection", "disconnected.");
     }
     return $result;
 }
 /**
  * Constructor
  *
  * @return	void
  */
 public function __construct()
 {
     parent::__construct();
     // TODO: Change the autogenerated stub
     $this->setCommand();
     $exist = false;
     for ($i = 0; $i < count($this->command_types); $i++) {
         if ($this->command_types[$i] == $this->getCommand()) {
             $exist = true;
             break;
         }
     }
     if (!$exist) {
         $this->log('Command: ' . $this->getCommand() . ' is not exist!', 'Exiting process.');
         $this->error_message('Command: ' . $this->getCommand() . ' is not exist!');
     }
 }