TeamSpeak 3 PHP Framework
1.1.12
|
Provides low-level methods for file transfer communication with a TeamSpeak 3 Server. More...
Public Member Functions | |
syn () | |
Connects the TeamSpeak3_Transport_Abstract object and performs initial actions on the remote server. | |
__destruct () | |
The TeamSpeak3_Adapter_FileTransfer destructor. | |
upload ($ftkey, $seek, $data) | |
Sends the content of a file to the server. | |
download ($ftkey, $size, $passthru=FALSE) | |
Returns the content of a downloaded file as a TeamSpeak3_Helper_String object. | |
__sleep () | |
Commit pending data. | |
__wakeup () | |
Reconnects to the remote server. | |
getProfiler () | |
Returns the profiler timer used for this connection adapter. | |
getTransport () | |
Returns the transport object used for this connection adapter. | |
getTransportHost () | |
Returns the hostname or IPv4 address the underlying TeamSpeak3_Transport_Abstract object is connected to. | |
getTransportPort () | |
Returns the port number of the server the underlying TeamSpeak3_Transport_Abstract object is connected to. | |
Protected Member Functions | |
init ($ftkey) | |
Sends a valid file transfer key to the server to initialize the file transfer. | |
passthru ($size) | |
Outputs all remaining data on a TeamSpeak 3 file transfer stream using PHP's fpassthru() function. | |
initTransport ($options, $transport="TeamSpeak3_Transport_TCP") | |
Loads the transport object object used for the connection adapter and passes a given set of options. | |
Protected Attributes | |
$options = null | |
$transport = null |
Provides low-level methods for file transfer communication with a TeamSpeak 3 Server.
Definition at line 32 of file FileTransfer.php.
The TeamSpeak3_Adapter_FileTransfer destructor.
Reimplemented from TeamSpeak3_Adapter_Abstract.
Definition at line 56 of file FileTransfer.php.
References TeamSpeak3_Adapter_Abstract\getTransport().
{ if($this->getTransport() instanceof TeamSpeak3_Transport_Abstract && $this->getTransport()->isConnected()) { $this->getTransport()->disconnect(); } }
Connects the TeamSpeak3_Transport_Abstract object and performs initial actions on the remote server.
TeamSpeak3_Adapter_Exception |
Reimplemented from TeamSpeak3_Adapter_Abstract.
Definition at line 41 of file FileTransfer.php.
References TeamSpeak3_Helper_Signal\getInstance(), init(), and TeamSpeak3_Adapter_Abstract\initTransport().
{ $this->initTransport($this->options); $this->transport->setAdapter($this); TeamSpeak3_Helper_Profiler::init(spl_object_hash($this)); TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferConnected", $this); }
TeamSpeak3_Adapter_FileTransfer::init | ( | $ | ftkey | ) | [protected] |
Sends a valid file transfer key to the server to initialize the file transfer.
string | $ftkey |
TeamSpeak3_Adapter_FileTransfer_Exception |
Definition at line 71 of file FileTransfer.php.
References TeamSpeak3_Helper_Signal\getInstance(), TeamSpeak3_Adapter_Abstract\getProfiler(), and TeamSpeak3_Adapter_Abstract\getTransport().
Referenced by download(), syn(), and upload().
{ if(strlen($ftkey) != 32) { throw new TeamSpeak3_Adapter_FileTransfer_Exception("invalid file transfer key format"); } $this->getProfiler()->start(); $this->getTransport()->send($ftkey); TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferHandshake", $this); }
TeamSpeak3_Adapter_FileTransfer::upload | ( | $ | ftkey, |
$ | seek, | ||
$ | data | ||
) |
Sends the content of a file to the server.
string | $ftkey | |
integer | $seek | |
string | $data |
TeamSpeak3_Adapter_FileTransfer_Exception |
Definition at line 93 of file FileTransfer.php.
References TeamSpeak3_Helper_Signal\getInstance(), TeamSpeak3_Adapter_Abstract\getProfiler(), TeamSpeak3_Adapter_Abstract\getTransport(), and init().
{ $this->init($ftkey); $size = strlen($data); $seek = intval($seek); $pack = 4096; TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferUploadStarted", $ftkey, $seek, $size); for(;$seek < $size;) { $rest = $size-$seek; $pack = $rest < $pack ? $rest : $pack; $buff = substr($data, $seek, $pack); $seek = $seek+$pack; $this->getTransport()->send($buff); TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferUploadProgress", $ftkey, $seek, $size); } $this->getProfiler()->stop(); TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferUploadFinished", $ftkey, $seek, $size); if($seek < $size) { throw new TeamSpeak3_Adapter_FileTransfer_Exception("incomplete file upload (" . $seek . " of " . $size . " bytes)"); } }
TeamSpeak3_Adapter_FileTransfer::download | ( | $ | ftkey, |
$ | size, | ||
$ | passthru = FALSE |
||
) |
Returns the content of a downloaded file as a TeamSpeak3_Helper_String object.
string | $ftkey | |
integer | $size | |
boolean | $passthru |
TeamSpeak3_Adapter_FileTransfer_Exception |
Definition at line 134 of file FileTransfer.php.
References TeamSpeak3_Helper_Signal\getInstance(), TeamSpeak3_Adapter_Abstract\getProfiler(), TeamSpeak3_Adapter_Abstract\getTransport(), init(), and passthru().
{ $this->init($ftkey); if($passthru) { return $this->passthru($size); } $buff = new TeamSpeak3_Helper_String(""); $size = intval($size); $pack = 4096; TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferDownloadStarted", $ftkey, count($buff), $size); for($seek = 0;$seek < $size;) { $rest = $size-$seek; $pack = $rest < $pack ? $rest : $pack; $data = $this->getTransport()->read($rest < $pack ? $rest : $pack); $seek = $seek+$pack; $buff->append($data); TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferDownloadProgress", $ftkey, count($buff), $size); } $this->getProfiler()->stop(); TeamSpeak3_Helper_Signal::getInstance()->emit("filetransferDownloadFinished", $ftkey, count($buff), $size); if(strlen($buff) != $size) { throw new TeamSpeak3_Adapter_FileTransfer_Exception("incomplete file download (" . count($buff) . " of " . $size . " bytes)"); } return $buff; }
TeamSpeak3_Adapter_FileTransfer::passthru | ( | $ | size | ) | [protected] |
Outputs all remaining data on a TeamSpeak 3 file transfer stream using PHP's fpassthru() function.
integer | $size |
TeamSpeak3_Adapter_FileTransfer_Exception |
Definition at line 181 of file FileTransfer.php.
References TeamSpeak3_Adapter_Abstract\getTransport().
Referenced by download().
{ $buff_size = fpassthru($this->getTransport()->getStream()); if($buff_size != $size) { throw new TeamSpeak3_Adapter_FileTransfer_Exception("incomplete file download (" . intval($buff_size) . " of " . $size . " bytes)"); } }
TeamSpeak3_Adapter_Abstract::__sleep | ( | ) | [inherited] |
Commit pending data.
Definition at line 85 of file Abstract.php.
{ return array("options"); }
TeamSpeak3_Adapter_Abstract::__wakeup | ( | ) | [inherited] |
Reconnects to the remote server.
Definition at line 95 of file Abstract.php.
References TeamSpeak3_Adapter_Abstract\syn().
{ $this->syn(); }
TeamSpeak3_Adapter_Abstract::getProfiler | ( | ) | [inherited] |
Returns the profiler timer used for this connection adapter.
Definition at line 105 of file Abstract.php.
References TeamSpeak3_Helper_Profiler\get().
Referenced by download(), TeamSpeak3_Adapter_ServerQuery\getQueryRuntime(), init(), TeamSpeak3_Adapter_ServerQuery\request(), and upload().
{ return TeamSpeak3_Helper_Profiler::get(spl_object_hash($this)); }
TeamSpeak3_Adapter_Abstract::getTransport | ( | ) | [inherited] |
Returns the transport object used for this connection adapter.
Definition at line 115 of file Abstract.php.
Referenced by __destruct(), TeamSpeak3_Adapter_TSDNS\__destruct(), TeamSpeak3_Adapter_Blacklist\__destruct(), TeamSpeak3_Adapter_ServerQuery\__destruct(), TeamSpeak3_Adapter_Update\__destruct(), download(), TeamSpeak3_Adapter_Abstract\getTransportHost(), TeamSpeak3_Adapter_Abstract\getTransportPort(), init(), TeamSpeak3_Adapter_Blacklist\isBlacklisted(), passthru(), TeamSpeak3_Adapter_ServerQuery\request(), TeamSpeak3_Adapter_TSDNS\resolve(), TeamSpeak3_Adapter_ServerQuery\syn(), TeamSpeak3_Adapter_Update\syn(), upload(), and TeamSpeak3_Adapter_ServerQuery\wait().
{
return $this->transport;
}
TeamSpeak3_Adapter_Abstract::initTransport | ( | $ | options, |
$ | transport = "TeamSpeak3_Transport_TCP" |
||
) | [protected, inherited] |
Loads the transport object object used for the connection adapter and passes a given set of options.
array | $options | |
string | $transport |
TeamSpeak3_Adapter_Exception |
Definition at line 129 of file Abstract.php.
Referenced by syn(), TeamSpeak3_Adapter_TSDNS\syn(), TeamSpeak3_Adapter_Blacklist\syn(), TeamSpeak3_Adapter_ServerQuery\syn(), and TeamSpeak3_Adapter_Update\syn().
{ if(!is_array($options)) { throw new TeamSpeak3_Adapter_Exception("transport parameters must provided in an array"); } $this->transport = new $transport($options); }
TeamSpeak3_Adapter_Abstract::getTransportHost | ( | ) | [inherited] |
Returns the hostname or IPv4 address the underlying TeamSpeak3_Transport_Abstract object is connected to.
Definition at line 145 of file Abstract.php.
References TeamSpeak3_Adapter_Abstract\getTransport().
{ return $this->getTransport()->getConfig("host", "0.0.0.0"); }
TeamSpeak3_Adapter_Abstract::getTransportPort | ( | ) | [inherited] |
Returns the port number of the server the underlying TeamSpeak3_Transport_Abstract object is connected to.
Definition at line 156 of file Abstract.php.
References TeamSpeak3_Adapter_Abstract\getTransport().
{ return $this->getTransport()->getConfig("port", "0"); }