4#ifndef _Stroika_Foundation_Database_Document_Connection_h_
5#define _Stroika_Foundation_Database_Document_Connection_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
12#include "Stroika/Foundation/Containers/Set.h"
26namespace Stroika::Foundation::Database::Document {
28 using Characters::String;
29 using Containers::Set;
32 class EngineProperties;
35namespace Stroika::Foundation::Database::Document::Connection {
51 class Ptr :
public shared_ptr<IRep> {
53 using inherited = shared_ptr<IRep>;
58 Ptr (
const Ptr& src) =
default;
59 Ptr (
Ptr&& src)
noexcept =
default;
60 using inherited::inherited;
68 nonvirtual
Ptr& operator= (
const Ptr& src) =
default;
69 nonvirtual
Ptr& operator= (
Ptr&& src)
noexcept =
default;
85 nonvirtual
void DropCollection (
const String& name);
109 nonvirtual
bool operator== (
const Ptr& rhs)
const noexcept;
110 nonvirtual
bool operator== (nullptr_t)
const noexcept;
121 class IRep :
public enable_shared_from_this<IRep> {
125 virtual ~IRep () =
default;
130 virtual shared_ptr<const EngineProperties> GetEngineProperties ()
const = 0;
146 virtual void DropCollection (
const String& name) = 0;
167#include "Connection.inl"
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.
virtual void CreateCollection(const String &name)=0
virtual Transaction mkTransaction()=0
nonvirtual void CreateCollection(const String &name)
nonvirtual String ToString() const
nonvirtual Transaction mkTransaction()
NOT a real mutex - just a debugging infrastructure support tool so in debug builds can be assured thr...