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;
129#if qStroika_Foundation_Common_Platform_Windows
133 optional<Time::DurationSeconds> fRetryOnSharingViolationFor;
146 variant<MemoryStorage, SingleFileStorage, DirectoryFileStorage> fStorage;
159 Ptr (
const Ptr& src);
160 Ptr (
const shared_ptr<IRep>& src);
161 Ptr (nullptr_t =
nullptr) noexcept;
169 nonvirtual Ptr& operator= (const Ptr& src);
170 nonvirtual Ptr& operator= (Ptr&& src) noexcept;
175 nonvirtual IRep* operator->() const noexcept;
182 nonvirtual
void Flush () const;
206 Ptr New (const Options& options);
210 class IRep : public Database::
Document::Connection::IRep {
216 virtual void Flush () = 0;
229#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