class CCL::JsonArchive

Overview

JSON Archive - http://json.org. More…

#include <jsonarchive.h>

class JsonArchive: public CCL::Archive
{
public:
    // enums

    enum Flags;

    // classes

    class Reader;
    class Writer;

    // fields

     kTypeIDEnabled;

    // construction

    JsonArchive (
        IStream& stream,
        Attributes* context = nullptr,
        StringID saveType = nullptr
    );

    JsonArchive (IStream& stream, int flags);

    // methods

    DECLARE_STRINGID_MEMBER (kMimeType) const;
    PROPERTY_FLAG (flags, kSuppressWhitespace, isSuppressWhitespace);
    isTypeIDEnabled PROPERTY_FLAG (flags, kKeepDuplicateKeys, isKeepDuplicateKeys) const;
    virtual ArchiveType getArchiveType () const;
    virtual bool isAnonymous () const;
    virtual bool saveAttributes (ObjectID root, const Attributes& attributes);
    virtual bool loadAttributes (ObjectID root, Attributes& attributes);
    static bool isJson (const void* data, uint32 length);
};

Inherited Members

public:
    // typedefs

    typedef CStringRef ObjectID;

    // fields

    static StringID kSaveTypeCopy;
    static StringID kSaveTypePreview;

    // methods

    virtual ArchiveType getArchiveType () const = 0;
    virtual bool isAnonymous () const = 0;
    PROPERTY_VARIABLE (int, flags, Flags);
    void setContext (Attributes* context);
    Attributes* getContext ();
    PROPERTY_MUTABLE_CSTRING (saveType, SaveType);
    bool saveObject (ObjectID name, const Object& object);
    bool loadObject (ObjectID name, Object& object);
    virtual bool saveAttributes (ObjectID root, const Attributes& attributes) = 0;
    virtual bool loadAttributes (ObjectID root, Attributes& attributes) = 0;

Detailed Documentation

JSON Archive - http://json.org.

Methods

isTypeIDEnabled PROPERTY_FLAG (flags, kKeepDuplicateKeys, isKeepDuplicateKeys) const

save array at top level without enclosing object

virtual ArchiveType getArchiveType () const

archive type (XML, JSON, binary, etc.)

virtual bool isAnonymous () const

true if archive doesn’t provide type information

static bool isJson (const void* data, uint32 length)

checks if first character looks like JSON