class Core::Portable::ArchiveUtils

Archive utility functions.

#include <corepersistence.h>

class ArchiveUtils
{
public:
    // structs

    struct AttributesPromise;
    struct LoadCompletionHandler;

    // methods

    static bool saveToFile(
        CStringPtr filename,
        const Attributes& attributes,
        Archiver::Format format = Archiver::kJSON,
        FileStorageContext* compressionContext = nullptr,
        int streamSizeEstimate = 0
    );

    static bool loadFromFile(
        Attributes& attributes,
        CStringPtr filename,
        Archiver::Format format = Archiver::kJSON,
        FileStorageContext* compressionContext = nullptr,
        int streamSizeEstimate = 0,
        bool inplace = false
    );

    static bool loadFromStream(
        Attributes& attributes,
        IO::MemoryStream& stream,
        Archiver::Format format = Archiver::kJSON,
        FileStorageContext* compressionContext = nullptr,
        int streamSizeEstimate = 0,
        bool inplace = false
    );

    static FileIOTaskID saveInBackground(
        CStringPtr filename,
        const Attributes& attributes,
        FileIOCompletionHandler* completionHandler = nullptr,
        Archiver::Format format = Archiver::kJSON,
        FileStorageContext::Mode mode = FileStorageContext::kCopy,
        int streamSizeEstimate = 0
    );

    static FileIOTaskID saveInBackground(
        CStringPtr filename,
        AttributesPromise* attributePromise,
        FileIOCompletionHandler* completionHandler = nullptr,
        Archiver::Format format = Archiver::kJSON,
        FileStorageContext::Mode mode = FileStorageContext::kCopy,
        int streamSizeEstimate = 0
    );

    static FileIOTaskID loadInBackground(
        CStringPtr filename,
        LoadCompletionHandler* completionHandler,
        FileStorageContext::Mode mode = FileStorageContext::kCopy
    );

    static IO::MemoryStream* saveToStream(
        const Attributes& attributes,
        Archiver::Format format = Archiver::kJSON,
        int streamSizeEstimate = 0,
        FileStorageContext* compressionContext = nullptr
    );

    static bool saveToStream(
        IO::MemoryStream& data,
        const Attributes& attributes,
        Archiver::Format format = Archiver::kJSON,
        int streamSizeEstimate = 0
    );
};