Inheritance diagram for ilBMFTransport_TCP:
Collaboration diagram for ilBMFTransport_TCP:Public Member Functions | |
| ilBMFTransport_TCP ($url, $encoding=SOAP_DEFAULT_ENCODING) | |
| Constructor. | |
| _socket_ping () | |
| send ($msg, $options=NULL) | |
| Sends and receives SOAP data. | |
| _validateUrl () | |
| Validates the url data passed to the constructor. | |
Data Fields | |
| $headers = array() | |
| $urlparts = null | |
| $url = '' | |
| $incoming_payload = '' | |
| $_userAgent = SOAP_LIBRARY_NAME | |
| $encoding = SOAP_DEFAULT_ENCODING | |
| $result_encoding = 'UTF-8' | |
| $result_content_type | |
| $socket = null | |
| socket | |
Definition at line 33 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::_socket_ping | ( | ) |
Definition at line 65 of file class.ilBMFTransport_TCP.php.
Referenced by send().
{
// XXX how do we restart after socket_shutdown?
//if (!$this->socket) {
// Create socket resource.
$this->socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($this->socket < 0) {
return 0;
}
// Connect.
$result = socket_connect($this->socket, $this->urlparts['host'],
$this->urlparts['port']);
if ($result < 0) {
return 0;
}
//}
return 1;
}
Here is the caller graph for this function:| ilBMFTransport_TCP::_validateUrl | ( | ) |
Validates the url data passed to the constructor.
Definition at line 142 of file class.ilBMFTransport_TCP.php.
References ilBMFBase_Object::_raiseSoapFault().
Referenced by send().
{
if (!is_array($this->urlparts) ) {
$this->_raiseSoapFault("Unable to parse URL $url");
return false;
}
if (!isset($this->urlparts['host'])) {
$this->_raiseSoapFault("No host in URL $url");
return false;
}
if (!isset($this->urlparts['path']) || !$this->urlparts['path']) {
$this->urlparts['path'] = '/';
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilBMFTransport_TCP::ilBMFTransport_TCP | ( | $ | url, | |
| $ | encoding = SOAP_DEFAULT_ENCODING | |||
| ) |
Constructor.
| string | $url HTTP url to SOAP endpoint. |
public
Definition at line 57 of file class.ilBMFTransport_TCP.php.
References $encoding, $url, and ilBMFBase_Object::ilBMFBase_Object().
{
parent::ilBMFBase_Object('TCP');
$this->urlparts = @parse_url($url);
$this->url = $url;
$this->encoding = $encoding;
}
Here is the call graph for this function:| ilBMFTransport_TCP::send | ( | $ | msg, | |
| $ | options = NULL | |||
| ) |
Sends and receives SOAP data.
| string | $msg Outgoing POST data. | |
| string | $action SOAP Action header data. |
Definition at line 94 of file class.ilBMFTransport_TCP.php.
References ilBMFBase_Object::_raiseSoapFault(), _socket_ping(), and _validateUrl().
{
$this->incoming_payload = '';
$this->outgoing_payload = $msg;
if (!$this->_validateUrl()) {
return $this->fault;
}
// Check for TCP scheme.
if (strcasecmp($this->urlparts['scheme'], 'TCP') == 0) {
// Check connection.
if (!$this->_socket_ping()) {
return $this->_raiseSoapFault('Error connecting to ' . $this->url . '; reason: ' . socket_strerror(socket_last_error($this->socket)));
}
// Write to the socket.
if (!@socket_write($this->socket, $this->outgoing_payload,
strlen($this->outgoing_payload))) {
return $this->_raiseSoapFault('Error sending data to ' . $this->url . '; reason: ' . socket_strerror(socket_last_error($this->socket)));
}
// Shutdown writing.
if(!socket_shutdown($this->socket, 1)) {
return $this->_raiseSoapFault('Cannot change socket mode to read.');
}
// Read everything we can.
while ($buf = @socket_read($this->socket, 1024, PHP_BINARY_READ)) {
$this->incoming_payload .= $buf;
}
// Return payload or die.
if ($this->incoming_payload) {
return $this->incoming_payload;
}
return $this->_raiseSoapFault('Error reveiving data from ' . $this->url);
}
return $this->_raiseSoapFault('Invalid url scheme ' . $this->url);
}
Here is the call graph for this function:| ilBMFTransport_TCP::$_userAgent = SOAP_LIBRARY_NAME |
Definition at line 40 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::$encoding = SOAP_DEFAULT_ENCODING |
Definition at line 41 of file class.ilBMFTransport_TCP.php.
Referenced by ilBMFTransport_TCP().
| ilBMFTransport_TCP::$headers = array() |
Definition at line 36 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::$incoming_payload = '' |
Definition at line 39 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::$result_content_type |
Definition at line 43 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::$result_encoding = 'UTF-8' |
Definition at line 42 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::$socket = null |
socket
Definition at line 48 of file class.ilBMFTransport_TCP.php.
| ilBMFTransport_TCP::$url = '' |
Definition at line 38 of file class.ilBMFTransport_TCP.php.
Referenced by ilBMFTransport_TCP().
| ilBMFTransport_TCP::$urlparts = null |
Definition at line 37 of file class.ilBMFTransport_TCP.php.
1.7.1