summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_cpplibrary/src/lib/encode/include/XCommonEventHeader.h
blob: aefdfbbcb0a51082fb43a43fc38a88d4cdd6c387 (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
72
73
74
75
76
77
78
79
80
81
82
83
#pragma once
        
#include "XEvent.h"

namespace vagt
{
    namespace encode
    {
        using XInternalHeaderFields = std::string;

        enum XEnumCommonEventHeaderVersion
        {
            XEnumCommonEventHeaderVersion4_0_1,
        };

        enum XEnumCommonEventHeaderVesEventListenerVersion
        {
            XEnumCommonEventHeaderVesEventListenerVersion7_0_1,
        };

        enum XEnumCommonEventHeaderDomain
        {
            XEnumCommonEventHeaderDomainFault,
            XEnumCommonEventHeaderDomainHeartbeat,
            XEnumCommonEventHeaderDomainMeasurement,
            XEnumCommonEventHeaderDomainMobileFlow,
            XEnumCommonEventHeaderDomainNotification,
            XEnumCommonEventHeaderDomainOther,
            XEnumCommonEventHeaderDomainPnfRegistration,
            XEnumCommonEventHeaderDomainSipSignaling,
            XEnumCommonEventHeaderDomainStateChange,
            XEnumCommonEventHeaderDomainSyslog,
            XEnumCommonEventHeaderDomainThresholdCrossingAlert,
            XEnumCommonEventHeaderDomainVoiceQuality,
        };

        enum XEnumCommonEventHeaderPriority
        {
            XEnumCommonEventHeaderPriorityHigh,
            XEnumCommonEventHeaderPriorityMedium,
            XEnumCommonEventHeaderPriorityNormal,
            XEnumCommonEventHeaderPriorityLow,
        };

        class XCommonEventHeader : public XSerialable
        {
        public:
            virtual std::string toString() = 0;

            virtual void setEventId(const XString& eventId) = 0;
            virtual void setReportingEntityId(const XString& reportingEntityId) = 0;
            virtual void setDomain(XEnumCommonEventHeaderDomain domain) = 0;
            virtual void setLastEpochMicrosec(XInteger lastEpochMicrosec) = 0;
            virtual void setReportingEntityName(const XString& reportingEntityName) = 0;
            virtual void setSourceId(const XString& sourceId) = 0;
            virtual void setEventType(const XString& eventType) = 0;
            virtual void setSequence(XInteger sequence) = 0;
            virtual void setInternalHeaderFields(const XInternalHeaderFields& internalHeaderFields) = 0;
            virtual void setPriority(XEnumCommonEventHeaderPriority priority) = 0;
            virtual void setSourceName(const XString& sourceName) = 0;
            virtual void setEventName(const XString& eventName) = 0;
            virtual void setNfNamingCode(const XString& nfNamingCode) = 0;
            virtual void setStartEpochMicrosec(XInteger startEpochMicrosec) = 0;
            virtual void setNfVendorName(const XString& nfVendorName) = 0;
            virtual void setTimeZoneOffset(const XString& timeZoneOffset) = 0;
            virtual void setNfcNamingCode(const XString& nfcNamingCode) = 0;

            static std::shared_ptr<XCommonEventHeader> create(const XString& eventName,
                const XString& eventId,
                const XString& sourceName,
                const XString& reportingEntityName,
                XEnumCommonEventHeaderPriority priority,
                XInteger sequence);
        };

        class XExtendEvent : public XSerialable
        {
        public:
            virtual std::shared_ptr<XCommonEventHeader> getCommonHeader() = 0;
        };
    }
}