Skip to content

src/local_secure_storage/impl/JSONBackend.hpp

Namespaces

Name
sgns

Classes

Name
class sgns::JSONBackend

Source code

#pragma once

#include "../ISecureStorage.hpp"

#include <rapidjson/document.h>

namespace sgns
{
    class JSONBackend : public ISecureStorage
    {
    public:
        JSONBackend() = default;

        ~JSONBackend() override = default;

        std::string GetName() override
        {
            return "JSONBackend";
        }

        outcome::result<SecureBufferType> Load( const std::string &key ) override;

        outcome::result<void> Save( const std::string &key, const SecureBufferType &buffer ) override;

        outcome::result<bool> DeleteKey( const std::string &key ) override;

        virtual outcome::result<rapidjson::Document> LoadJSON() const = 0;

        virtual outcome::result<void> SaveJSON( rapidjson::Document document ) = 0;
    };
}

Updated on 2026-03-04 at 13:10:44 -0800