Stroika Library 3.0d18
 
Loading...
Searching...
No Matches
TrivialDocumentDB.h File Reference
#include "Stroika/Foundation/StroikaPreComp.h"
#include <filesystem>
#include <optional>
#include "Stroika/Foundation/Characters/String.h"
#include "Stroika/Foundation/Common/Property.h"
#include "Stroika/Foundation/Containers/Mapping.h"
#include "Stroika/Foundation/Containers/Sequence.h"
#include "Stroika/Foundation/DataExchange/Variant/JSON/Reader.h"
#include "Stroika/Foundation/DataExchange/Variant/JSON/Writer.h"
#include "Stroika/Foundation/DataExchange/VariantValue.h"
#include "Stroika/Foundation/Database/Document/Collection.h"
#include "Stroika/Foundation/Database/Document/Connection.h"
#include "Stroika/Foundation/Database/Document/EngineProperties.h"
#include "Stroika/Foundation/Database/Document/Transaction.h"
#include "Stroika/Foundation/Debug/AssertExternallySynchronizedMutex.h"
#include "Stroika/Foundation/IO/Network/URI.h"
#include "Stroika/Foundation/Time/Duration.h"
#include "TrivialDocumentDB.inl"

Go to the source code of this file.

Classes

struct  Stroika::Foundation::Database::Document::TrivialDocumentDB::Options
 
struct  Stroika::Foundation::Database::Document::TrivialDocumentDB::Options::MemoryStorage
 
struct  Stroika::Foundation::Database::Document::TrivialDocumentDB::Options::FilesystemStorage
 

Namespaces

namespace  Stroika::Foundation
 

Functions

Ptr Stroika::Foundation::Database::Document::TrivialDocumentDB::New (const Options &options)
 create an TrivialDocumentDB database (and connection) object, guided by argument Options.
 

Detailed Description

Note
Code-Status: Alpha

TrivialDocumentDB is a (typically filesystem, but can be RAM based) trivial implementation of the DocumentDB API. You can use this to debug/test, and possibly for limited, or embedded, small scale uses.

Advantages:

  • Small, simple, easy to review code, and understand API
  • Very small dependency footprint
  • Lets you pick data format to store (when storing to disk), JSON, or BSON, or whatever you have serializers/de-serializers for.

Disadvantages

  • Performance on larger scale
  • Transactions NYI
  • Filesystem storage NYI (as of 3.0d18) - BUT when needed - easy

Definition in file TrivialDocumentDB.h.