1#ifndef art__paperback__carousel__file_hxx_
2#define art__paperback__carousel__file_hxx_
4#include <art/paperback/types.hxx>
5#include <art/paperback/forward.hxx>
7#include <art/paperback/carousel/array.hxx>
8#include <art/paperback/carousel/cross-reference.hxx>
9#include <art/paperback/carousel/name.hxx>
10#include <art/paperback/carousel/object.hxx>
11#include <art/paperback/carousel/writer.hxx>
29 File(Create_new
const&, iostream&,
int,
int,
string);
47 template<typename T, typename... Args>
53 auto container = make_shared<Object_model::Container<T>>(
54 std::forward<Args>(args)...
57 insert(identity, std::move(container));
60 make_shared<Object_model::Reference>(*
this, identity)
85 File& operator=(
File const&) =
delete;
101 unique_ptr<Internal> internal;
Represents a COS dictionary.
Definition dictionary.hxx:17
Represents a COS-format file.
Definition file.hxx:19
File(Create_new const &, iostream &, int, int, string)
Constructor.
Definition file.cxx:121
Object create_object(Args &&... args)
Create a new object.
Definition file.hxx:49
Object_model::Container_base & get_container(Identity const &)
Get container.
Definition file.cxx:273
static constexpr Create_new create_new
Dispatch-tag for creating a new COS-file.
Definition file.hxx:25
~File() noexcept
Destructor.
Definition file.cxx:135
Identity allocate()
Allocates a new index.
Definition file.cxx:289
void commit_revision()
Commit the current COS-file revision to the output stream.
Definition file.cxx:181
Dictionary & info()
Access the COS-file info dictionary object.
Definition file.cxx:163
void insert(Identity const &, shared_ptr< Object_model::Container_base >)
Inserts an object into the cross-reference table.
Definition file.cxx:299
Dictionary & catalog()
Access the COS-file catalog dictionary object.
Definition file.cxx:150
Base class for containers.
Definition object-model.hxx:82
Represents a reference to an indirect object.
Definition object-model.hxx:241
Represents a COS-file object.
Definition object.hxx:16
COS file format implementation namespace.
Definition array.cxx:6
Represents the identity of an indirect object.
Definition types.hxx:81