4#ifndef _Stroika_Foundation_Database_Document_LocalDocumentDB_h_
5#define _Stroika_Foundation_Database_Document_LocalDocumentDB_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
13#include "Stroika/Foundation/Containers/Mapping.h"
14#include "Stroika/Foundation/Containers/Sequence.h"
44namespace Stroika::Foundation::Database::Document::LocalDocumentDB {
46 using namespace Database::Document::Connection;
55 struct Options final : Database::Document::Connection::Options {
100#if qStroika_Foundation_Common_Platform_Windows
104 optional<Time::DurationSeconds> fRetryOnSharingViolationFor;
123#if qStroika_Foundation_Common_Platform_Windows
127 optional<Time::DurationSeconds> fRetryOnSharingViolationFor;
140 variant<MemoryStorage, SingleFileStorage, DirectoryFileStorage> fStorage;
153 Ptr (
const Ptr& src);
154 Ptr (
const shared_ptr<IRep>& src);
155 Ptr (nullptr_t =
nullptr) noexcept;
163 nonvirtual Ptr& operator= (const Ptr& src);
164 nonvirtual Ptr& operator= (Ptr&& src) noexcept;
169 nonvirtual IRep* operator->() const noexcept;
176 nonvirtual
void Flush () const;
200 Ptr New (const Options& options);
204 class IRep : public Database::
Document::Connection::IRep {
210 virtual void Flush () = 0;
223#include "LocalDocumentDB.inl"
tuple< DataExchange::Variant::Reader, DataExchange::Variant::Writer > fSerialization
tuple< DataExchange::Variant::Reader, DataExchange::Variant::Writer > fSerialization
Execution::InternallySynchronized fInternallySynchronizedLetter
use eInternallySynchronized to make letter internally synchronized