This repository has been archived by the owner on Nov 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 126
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Paweł Niedzielski
committed
Feb 22, 2019
1 parent
4a1efb4
commit 490bbbd
Showing
4 changed files
with
156 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
<?php | ||
/** | ||
* @author Stephen "TheCodeAssassin" Hoogendijk | ||
*/ | ||
|
||
namespace InfluxDB\Driver; | ||
|
||
/** | ||
* Class UDP | ||
* | ||
* @package InfluxDB\Driver | ||
*/ | ||
abstract class AbstractSocketDriver implements DriverInterface | ||
{ | ||
/** | ||
* Parameters | ||
* | ||
* @var array | ||
*/ | ||
private $parameters; | ||
|
||
/** | ||
* @var array | ||
*/ | ||
protected $config; | ||
|
||
/** | ||
* | ||
* @var resource | ||
*/ | ||
protected $stream; | ||
|
||
/** | ||
* @param string $host IP/hostname of the InfluxDB host | ||
* @param int $port Port of the InfluxDB process | ||
*/ | ||
public function __construct($host, $port) | ||
{ | ||
$this->config['host'] = $host; | ||
$this->config['port'] = $port; | ||
} | ||
|
||
/** | ||
* Close the stream (if created) | ||
*/ | ||
public function __destruct() | ||
{ | ||
if (isset($this->stream) && is_resource($this->stream)) { | ||
fclose($this->stream); | ||
} | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
public function setParameters(array $parameters) | ||
{ | ||
$this->parameters = $parameters; | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
public function getParameters() | ||
{ | ||
return $this->parameters; | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
public function write($data = null) | ||
{ | ||
if (isset($this->stream) === false) { | ||
$this->createStream(); | ||
} | ||
|
||
$this->doWrite($data); | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
abstract public function isSuccess(); | ||
|
||
/** | ||
* Perform write to socket | ||
* @param mixed|null $data | ||
*/ | ||
abstract protected function doWrite($data = null); | ||
|
||
/** | ||
* Create the resource stream | ||
*/ | ||
abstract protected function createStream(); | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
<?php | ||
/** | ||
* @author Stephen "TheCodeAssassin" Hoogendijk | ||
*/ | ||
|
||
namespace InfluxDB\Driver; | ||
|
||
/** | ||
* Class UDP | ||
* | ||
* @package InfluxDB\Driver | ||
*/ | ||
class TCP extends AbstractSocketDriver implements DriverInterface | ||
{ | ||
|
||
private $result; | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
public function isSuccess() | ||
{ | ||
return (bool) $this->result; | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
protected function createStream() | ||
{ | ||
$host = sprintf('tcp://%s:%d', $this->config['host'], $this->config['port']); | ||
|
||
// stream the data using TCP and suppress any errors | ||
$this->stream = @stream_socket_client($host); | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
protected function doWrite($data = null) | ||
{ | ||
$this->result = false !== fwrite($this->stream, $data); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters