class CCL::UBJsonArchive

Universal Binary JSON Archive - http://ubjson.org.

#include <jsonarchive.h>

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

    enum Flags;

    // construction

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

    // methods

    DECLARE_STRINGID_MEMBER (kMimeType) const;
    PROPERTY_FLAG (flags, kDoublePrecisionEnabled, isDoublePrecisionEnabled) const;
    virtual bool loadAttributes (ObjectID root, Attributes& attributes);
};

Inherited Members

public:
    // typedefs

    typedef CStringRef ObjectID;

    // enums

    enum Flags;

    // classes

    class Reader;
    class Writer;

    // fields

    static StringID kSaveTypeCopy;
    static StringID kSaveTypePreview;
     kTypeIDEnabled;

    // 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;
    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);