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
|
#ifdef _DEBUG
#define PROTOBUF_C_UNPACK_ERROR OutputDebugStringA
#endif
#include "pmsg.pb-c.h"
namespace proto
{
#define PROTOBUF_PTR(T,D) \
class T { \
Wa__##T* p; \
public: \
T(const MBinBuffer &buf) : p((Wa__##T*)protobuf_c_message_unpack(&D, 0, buf.length(), buf.data())) {} \
T(const ProtobufCBinaryData &data) : p((Wa__##T*)protobuf_c_message_unpack(&D, 0, data.len, data.data)) {} \
T(const uint8_t *pData, size_t len) : p((Wa__##T*)protobuf_c_message_unpack(&D, 0, len, pData)) {} \
~T() { protobuf_c_message_free_unpacked(p,0); } \
Wa__##T* operator->() const { return p; } \
operator Wa__##T*() const { return p; } \
};
struct SyncActionValue : public Wa__SyncActionValue
{ };
struct SyncdRecord : public Wa__SyncdRecord
{ };
struct SenderKeyDistributionMessage : public Wa__Message__SenderKeyDistributionMessage
{ };
struct WebMessageInfo : public Wa__WebMessageInfo
{ };
PROTOBUF_PTR(ADVDeviceIdentity, wa__advdevice_identity__descriptor);
PROTOBUF_PTR(ADVSignedDeviceIdentity, wa__advsigned_device_identity__descriptor);
PROTOBUF_PTR(ADVSignedDeviceIdentityHMAC, wa__advsigned_device_identity_hmac__descriptor);
PROTOBUF_PTR(CertChain, wa__cert_chain__descriptor);
PROTOBUF_PTR(CertChain__NoiseCertificate__Details, wa__cert_chain__noise_certificate__details__descriptor);
PROTOBUF_PTR(ClientPayload, wa__client_payload__descriptor);
PROTOBUF_PTR(ExternalBlobReference, wa__external_blob_reference__descriptor);
PROTOBUF_PTR(HandshakeMessage, wa__handshake_message__descriptor);
PROTOBUF_PTR(HistorySync, wa__history_sync__descriptor);
PROTOBUF_PTR(Message, wa__message__descriptor);
PROTOBUF_PTR(SyncActionData, wa__sync_action_data__descriptor);
PROTOBUF_PTR(SyncdSnapshot, wa__syncd_snapshot__descriptor);
PROTOBUF_PTR(SyncdPatch, wa__syncd_patch__descriptor);
MBinBuffer Serialize(const ProtobufCMessage *msg);
void CleanBinary(ProtobufCBinaryData &field);
ProtobufCBinaryData SetBinary(const void *pData, size_t len);
};
|