summaryrefslogtreecommitdiffstats
path: root/afb-client/bower_components/foundation-icon-fonts/svgs/fi-torsos-female-male.svg
blob: 5e4567ac56ce938970cec0983443b234daf696d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
<g>
	<path d="M34.199,47.04v-0.977v-5.438h0.022c0.163-5.466,1.39-10.528,3.382-14.767c0.223-0.731,0.474-1.447,0.756-2.145
		c-1.879-1.251-4.026-2.022-6.349-2.022c-7.114,0-12.872,6.702-12.872,14.978c0,5.79,2.83,10.801,6.962,13.295L8.652,58.086
		c-1.088,0.511-1.804,1.739-1.804,3.111v13.771c0,1.846,1.289,3.341,2.874,3.341h11.532v-14.45c0-3.739,2.068-7.121,5.275-8.623
		l7.669-3.572V47.04z"/>
	<path d="M90.853,60.441l-15.66-7.47l-6.621-3.159c0.166-0.105,0.324-0.224,0.487-0.335h8.695c1.346,0,2.438-1.091,2.438-2.438
		v-6.415H80.17c-0.266-8.937-3.368-16.798-8.029-21.731c-2.46-2.777-5.65-4.663-9.219-5.226c-0.157-0.026-0.315-0.049-0.474-0.07
		c-0.185-0.023-0.369-0.046-0.555-0.062c-0.398-0.035-0.798-0.059-1.202-0.059c-0.398,0-0.793,0.023-1.186,0.057
		c-0.187,0.016-0.372,0.039-0.557,0.062c-0.157,0.02-0.313,0.043-0.469,0.068c-3.532,0.553-6.694,2.405-9.145,5.134
		c-4.712,4.927-7.853,12.832-8.121,21.827h-0.022v6.415c0,1.346,1.091,2.438,2.438,2.438h8.719c0.238,0.162,0.475,0.327,0.721,0.475
		l-6.342,2.953l-16.168,7.53c-1.405,0.658-2.328,2.242-2.328,4.011v15.062v2.703c0,2.381,1.659,4.311,3.708,4.311h57.505
		c2.049,0,3.708-1.93,3.708-4.311v-2.703V64.446C93.152,62.683,92.244,61.114,90.853,60.441z"/>
</g>
</svg>
http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "message.h" #include "messageengine.h" #include "bluetoothmessage.h" #include "mediaplayermessage.h" #include "networkmessage.h" #include "pbapmessage.h" #include "responsemessage.h" #include "telephonymessage.h" #include "weathermessage.h" #include <QJsonArray> MessageEngine::MessageEngine(const QUrl &url, QObject *parent) : QObject(parent), m_callid(0), m_url(url) { connect(&m_websocket, &QWebSocket::connected, this, &MessageEngine::onConnected); connect(&m_websocket, &QWebSocket::disconnected, this, &MessageEngine::onDisconnected); m_websocket.open(url); } unsigned int MessageEngine::requestCallId() { int callid; m_mutex.lock(); callid = ++m_callid; m_mutex.unlock(); return callid; } bool MessageEngine::sendMessage(Message *message) { if (!message->isValid()) return false; auto callid = requestCallId(); message->setCallId(callid); QByteArray data = message->toJson().data(); qint64 size = m_websocket.sendTextMessage(data); if (size == 0) return false; m_calls.insert(callid, data); return true; } void MessageEngine::onConnected() { connect(&m_websocket, &QWebSocket::textMessageReceived, this, &MessageEngine::onTextMessageReceived); emit connected(); } void MessageEngine::onDisconnected() { disconnect(&m_websocket, &QWebSocket::textMessageReceived, this, &MessageEngine::onTextMessageReceived); emit disconnected(); } void MessageEngine::onTextMessageReceived(QString jsonStr) { QJsonDocument jdoc(QJsonDocument::fromJson(jsonStr.toUtf8())); if (jdoc.isEmpty()) { qWarning() << "Received invalid JSON: empty appfw message"; return; } QJsonArray msg = jdoc.array(); int msgid = msg[0].toInt(); Message *message; MessageType type; switch (msgid) { case RetOk: case RetErr: { auto callid = msg[1].toString().toInt(); message = new ResponseMessage(m_calls[callid]); type = ResponseRequestMessage; m_calls.remove(callid); break; } case Event: { QStringList api_str_list = msg[1].toString().split(QRegExp("/")); QString api = api_str_list[0]; // FIXME: This should be rewritten using a factory class with a // parser parameter to remove API specific handling here if (api == "Bluetooth-Manager") { message = new BluetoothMessage; type = BluetoothEventMessage; } else if (api == "bluetooth-pbap") { message = new PbapMessage; type = PbapEventMessage; } else if (api == "telephony") { message = new TelephonyMessage; type = TelephonyEventMessage; } else if (api == "weather") { message = new WeatherMessage; type = WeatherEventMessage; } else if (api == "mediaplayer") { message = new MediaplayerMessage; type = MediaplayerEventMessage; } else if (api == "network-manager") { message = new NetworkMessage; type = NetworkEventMessage; } else { message = new Message; type = GenericMessage; } break; } default: break; } if (message->fromJDoc(jdoc) == false) { delete message; return; } emit messageReceived(type, message); }