Git Repository Public Repository

namibia

URLs

Copy to Clipboard
 
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
namespace Utility\Comms;


/**
 * Facilitates chatting to APE http push server.
 * @author andre.fourie
 */
class Ape
{


	const CHANGE_TYPE_REFRESH = 'Refresh';
	const CHANGE_TYPE_CREATE  = 'Create';
	const CHANGE_TYPE_UPDATE  = 'Update';
	const CHANGE_TYPE_DELETE  = 'Delete';


	/**
	 * Speak to the APE server on specified channel.
	 * @param  string $channel
	 * @param  array $data
	 * @param  string $raw
	 * @param  boolean|string $pubid
	 * @param  string $command
	 * @return array|boolean
	 */
	static public function broadcast($channel, array $data, $raw = 'DATA', $pubid = false, $command = 'inlinepush')
	{
		$gearClient = new \GearmanClient();
		$gearClient->addServer();
		$gearClient->doBackground(
			'Broadcast',
			json_encode($data)
		);

		/*$cmd = \Zend\Json\Json::encode(array(array(
				'cmd' => $command,
				'params' =>  array(
						'password'  => 'ap3dP2ssk3Y',
						'pubid'     => $pubid,
						'raw'       => $raw,
						'channel'   => $channel,
						'data'      => $data
				)
		)));
		try
		{
			if (false && function_exists('curl_init'))
			{
				#-> Have curl, use it.
				$ch = curl_init('http://127.0.0.1:6969');
				curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
				curl_setopt($ch, CURLOPT_POSTFIELDS, $cmd);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($ch, CURLOPT_HTTPHEADER, array(
						'Content-Type: application/json',
						'Content-Length: ' . strlen($cmd))
				);
				$result = curl_exec($ch);
				curl_close($ch);
				return \Zend\Json\Json::decode($result);
			}
			else
			{
				#-> No curl, use the slower option.
				$result = @file_get_contents('http://127.0.0.1:6969', null, stream_context_create(array(
					'http' => array(
						'method'  => 'POST',
						'header'  => 'Content-Type: application/json' . "\r\n"
								   . 'Content-Length: ' . strlen($cmd) . "\r\n",
						'content' => $cmd
					)
				)));
				return \Zend\Json\Json::decode($result);
			}
		}
		catch (\Exception $e)
		{
			error_log(__CLASS__ . " >> $e");
			return false;
		}*/
	}

	/**
	 * Broadcast a Dataset Refresh notification.
	 * @param string $datasetName
	 * @return array|boolean
	 */
	static public function broadcastBuildDatasetChange($datasetName)
	{
		return self::broadcast('synchv1', array(
				'Meta' => array(
					'Strategy'    => 'Build',
					'DatasetName' => $datasetName,
					'Type'        => self::CHANGE_TYPE_REFRESH
				),
				'Data' => array()
		));
	}

	/**
	 * Broadcast a Dataset Update notification.
	 * @param string $datasetName
	 * @param string $changeType
	 * @param array  $datasetRecord
	 * @return array|boolean
	 */
	static public function broadcastUpdateDatasetChange($datasetName, $changeType, array $datasetRecord)
	{
		return self::broadcast('synchv1', array(
				'Meta' => array(
					'Strategy'    => 'Update',
					'DatasetName' => $datasetName,
					'Type'        => $changeType
				),
				'Data' => $datasetRecord
		));
	}


}

Commits for namibiamodule/Utility/src/Utility/Comms/Ape.php

Diff revisions: vs.
Revision Author Commited Message
df0489 ... Mark Fri 14 Oct, 2016 10:01:00 +0000

initial commit