summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_cpplibrary/src/lib/encode/XJsonObjectInstanceImp.h
blob: 7821738dd880bbd3ba7cec46c455baecfaaeff7c (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
#pragma once
        
#include "XJsonObjectInstance.h"
#include "XInternal.h"
#include "XJsonObject.h"

namespace vagt
{
    namespace encode
    {
        class XJsonObjectInstanceImp : public XJsonObjectInstance, public XJsonable
        {
        public:
            XJsonObjectInstanceImp();

            virtual json toJson() override;

            virtual void setJsonObject(const XJsonObject& jsonObject) override;
            virtual void setObjectInstance(const XString& objectInstance) override;
            virtual void setObjectInstanceEpochMicrosec(XNumber objectInstanceEpochMicrosec) override;
            virtual void setObjectKeys(const XArrayOfXKey& objectKeys) override;

        private:
            //optional
            XString objectInstance_;
            std::shared_ptr<XJsonObject> jsonObject_;
            XArrayOfXKey objectKeys_;
            std::map<std::string, XCommonValue> comVals_;
        };
    }
}