ILIAS  Release_3_10_x_branch Revision 61812
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilBMFTransport_TCP Class Reference
+ 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.
- Public Member Functions inherited from ilBMFBase_Object
 ilBMFBase_Object ($faultcode= 'Client')
 Constructor.
_raiseSoapFault ($str, $detail= '', $actorURI= '', $code=null, $mode=null, $options=null, $skipmsg=false)
 Raises a SOAP error.
 __isfault ()
__getfault ()
 _debug ($string)
 Adds a string to the debug data.

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
- Data Fields inherited from ilBMFBase_Object
 $_debug_flag = false
 Store debugging information in $_debug_data?
 $_debug_data = ''
 String containing debugging information if $_debug_flag is true.
 $_encodings = array('ISO-8859-1', 'US-ASCII', 'UTF-8')
 Supported encodings, limited by XML extension.
 $_myfaultcode = ''
 Fault code.
 $fault = null
 Recent PEAR_Error object.

Detailed Description

Definition at line 33 of file class.ilBMFTransport_TCP.php.

Member Function Documentation

ilBMFTransport_TCP::_socket_ping ( )

Definition at line 65 of file class.ilBMFTransport_TCP.php.

References $result.

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.

Returns
boolean private

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.

Parameters
string$urlHTTP url to SOAP endpoint.

public

Definition at line 57 of file class.ilBMFTransport_TCP.php.

References $encoding, $url, and ilBMFBase_Object\ilBMFBase_Object().

{
$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.

Parameters
string$msgOutgoing POST data.
string$actionSOAP Action header data.
Returns
string|ilBMFFault public

Definition at line 94 of file class.ilBMFTransport_TCP.php.

References ilBMFBase_Object\$fault, $incoming_payload, 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->_raiseSoapFault('Error reveiving data from ' . $this->url);
}
return $this->_raiseSoapFault('Invalid url scheme ' . $this->url);
}

+ Here is the call graph for this function:

Field Documentation

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.

Referenced by send().

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.


The documentation for this class was generated from the following file: