1#ifndef _DITTO_ATTACHMENT_
2#define _DITTO_ATTACHMENT_
4#include "DiskUsage.hpp"
12struct AttachmentHandle;
15class DittoHandleWrapper;
23 friend class AttachmentFetcher;
24 friend class Collection;
33 std::vector<uint8_t>
get_data()
const;
54 std::string
get_id()
const;
73 uint64_t get_type()
const;
74 nlohmann::json::binary_t get_id_internal()
const;
77 Attachment(std::vector<uint8_t>
id, uint64_t len,
78 std::map<std::string, std::string> metadata,
79 struct AttachmentHandle *handle,
80 std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper);
82 std::map<std::string, std::string> metadata;
83 std::vector<uint8_t> id;
85 std::shared_ptr<AttachmentInner> handle;
86 std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper;
89 const char *get_path()
const;
93void to_json(nlohmann::json &j,
const Attachment &a);
Represents an attachment and can be used to insert the associated attachment into a document at a spe...
Definition Attachment.hpp:22
DiskUsage & get_disk_usage() const
Provides access to the Attachment's disk usage.
std::string get_id() const
Gets the attachment's ID.
Definition Attachment.cpp:86
std::vector< uint8_t > get_data() const
Returns the attachment's data as a byte array.
Definition Attachment.cpp:40
bool copy_to_path(const std::string &dest_path)
Copies the attachment to the specified file path.
Definition Attachment.cpp:62
std::map< std::string, std::string > get_metadata() const
Gets the attachment's metadata.
Definition Attachment.cpp:93
uint64_t get_len() const
Gets the attachment's size in bytes.
Definition Attachment.cpp:91
Provides an interface to be able to monitor local files.
Definition DiskUsage.hpp:66