summaryrefslogtreecommitdiffstats
path: root/core/message.h
blob: acbbefdc66d76ec3fdb02f18ec9cccce20778020 (plain)
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
/*
 * Copyright (C) 2017-2020 Konsulko Group
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      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.
 */

#ifndef MESSAGE_H
#define MESSAGE_H

#include <memory>
#include <QObject>
#include <QMap>
#include <QVariant>
#include <QJsonDocument>
#include <QJsonObject>

enum class MessageId {
	Invalid = 0,
	Call = 2,
	RetOk = 3,
	RetErr = 4,
	Event = 5,
};

class QWebSocket;

class Message
{
	public:
		Message();
		virtual bool  setAdditionalData(QByteArray data)
		{
			return false;
		}
		QByteArray send(QWebSocket& transport, unsigned int callid);

		inline bool isComplete() const
		{
			return m_init;
		}

		virtual bool getCallId(unsigned int *id) const
		{
			return false;
		}

		static MessageId isValid(QJsonDocument );

		virtual bool isEvent() = 0;
		virtual bool isReply() = 0;

	protected:
		virtual void updateCallId(unsigned int id) {};
		virtual QByteArray serialize(QJsonDocument::JsonFormat format = QJsonDocument::Compact);

		bool m_init;
		QJsonDocument m_jdoc;
};
Q_DECLARE_METATYPE(std::shared_ptr<Message>)

#endif // MESSAGE_H
" revision="7685c7d415e0002c448007960837ae8898cd57a5" upstream="thud"/> <!-- Qt things --> <project name="meta-qt5/meta-qt5" path="external/meta-qt5" remote="github" revision="1520d5b2b2beec5e1c3209d3178219e93ef08bca" upstream="thud"/> <!-- Updater layers. --> <project name="advancedtelematic/meta-updater" path="external/meta-updater" remote="github" revision="e4dd74565f429b576e84972d12cc1ae2048be119" upstream="thud"/> <project name="advancedtelematic/meta-updater-qemux86-64" path="external/meta-updater-qemux86-64" remote="github" revision="214e14c4c45625842e542eebd696f903060d488f" upstream="thud"/> <project name="advancedtelematic/meta-updater-raspberrypi" path="external/meta-updater-raspberrypi" remote="github" revision="062194613515d4bf7d130f21ba3a0e1a2f0bb461" upstream="thud"/> <!-- Security layer --> <project name="meta-security" path="external/meta-security" remote="yocto" revision="31dc4e7532fa7a82060e0b50e5eb8d0414aa7e93" upstream="thud"/> <!-- SmartDeviceLink layer --> <project name="phongt/meta-sdl" path="external/meta-sdl" remote="github" revision="ab1e345171e799216b8fcb432943a2de5ff66f5f" upstream="thud"/> <!-- meta-spdxscanner - support for fossology --> <project name="dl9pf/meta-spdxscanner" path="external/meta-spdxscanner" remote="github" revision="0feeb60abc03e603838042afbbbbdb6126c788f8" upstream="master"/> <!-- Alexa Auto SDK layer --> <project name="alexa/alexa-auto-sdk" path="external/alexa-auto-sdk" remote="github" revision="86916d2d8c1702a8be3c88a9012ca56583bcc0c8" upstream="2.0"/> <!-- BSPs --> <!-- Renesas Gen3 specific things --> <project name="AGL/meta-renesas-rcar-gen3" path="bsp/meta-renesas-rcar-gen3" /> <project name="CogentEmbedded/meta-rcar" path="bsp/meta-rcar" remote="github" revision="e9bf7907fcf1f3013705de10a37b7561f6660e3c" upstream="thud-v3.21.0"/> <!-- MinnowBoard MAX specific things --> <project name="meta-intel" path="bsp/meta-intel" remote="yocto" revision="a930f946b915624dcc02358725d235b3224fb61b" upstream="thud"/> <!-- consolidate on meta-freescale from git.yoctoproject.org --> <project name="meta-freescale" path="bsp/meta-freescale" remote="yocto" revision="c7ab72d894cf5ca887832e163bc27719e045e047" upstream="thud"/> <project name="Freescale/meta-freescale-3rdparty" path="bsp/meta-freescale-3rdparty" remote="github" revision="545e8094a140231e78b9284c3a3d94fcc573ae98" upstream="thud"/> <!-- Boundary devices bsp layer --> <project name="boundarydevices/meta-boundary" path="bsp/meta-boundary" remote="github" revision="4ea73c57f125ff0b8c3e17e5cc5d07b6168bbd6c" upstream="master"/> <!-- ti vayu / jacinto 6 / DRA7 --> <project name="meta-ti" path="bsp/meta-ti" remote="yocto" revision="2da08ed8b2f4a29fb7d45e769171ea5bb79cf0b2" upstream="thud"/> <!-- rpi 2, 3 and 3 B+ --> <project name="meta-raspberrypi" path="bsp/meta-raspberrypi" remote="yocto" revision="4e5be97d75668804694412f9b86e9291edb38b9d" upstream="thud"/> <!-- DragonBoard 410c specific things --> <project name="meta-qcom" path="bsp/meta-qcom" remote="yocto" revision="d0a58e836444a7118acfc5a99d8cacaa5ae09f5c" upstream="thud"/> <!-- Altera SOCFPGA platform --> <!-- https://github.com/kraj/meta-altera --> <project name="kraj/meta-altera" path="bsp/meta-altera" remote="github" revision="8a1d00568078790dac6fc0d94ed199b850f3bb75" upstream="thud"/> <!-- Sancloud BSP layers --> <project name="SanCloudLtd/meta-sancloud" path="bsp/meta-sancloud" remote="github" revision="f91b336cc0b0a8be17940559fc8a433813429b76" upstream="thud"/> <project name="EmbeddedAndroid/meta-rtlwifi" path="bsp/meta-rtlwifi" remote="github" revision="174c9bacc4af9873bfbecf618e331c6d464540bf" upstream="master"/> <!-- meta-synopsys - support for ARC HSDK board --> <project name="foss-for-synopsys-dwc-arc-processors/meta-synopsys" path="bsp/meta-synopsys" remote="github" revision="702a0e826e87796aefa97abc1de0217d3775fd13" upstream="halibut-agl"/> </manifest>