Ditto 4.9.4
 
Loading...
Searching...
No Matches
DiskUsage.hpp
1#ifndef _DITTO_DISK_USAGE_
2#define _DITTO_DISK_USAGE_
3
4#include "DittoHandleWrapper.hpp"
5#include "dittoffi.hpp"
6#include "json.hpp"
7
8#include <string>
9#include <vector>
10
11namespace ditto {
12
13class DittoHandleWrapper;
14class Store;
15
16enum FileSystemType {
17 Directory,
18 File,
19 SymLink,
20};
21
23 friend class DiskUsage;
24
25public:
26 FileSystemType fs_type;
27 std::string path;
28 uint64_t size_in_bytes;
29 std::vector<DiskUsageChild> children;
30};
31
36typedef std::function<void(DiskUsageChild)> DiskUsageCallback;
37
38class DiskObserverContext {
39 friend class DiskUsage;
40
45 DiskUsageObserver_t *inner_context;
46 DiskUsageCallback cb;
47
48 explicit DiskObserverContext(DiskUsageCallback callback);
56 static void on_event(void *ctx, slice_ref_uint8_t cbor);
57 void set_handle(DiskUsageObserver_t *inner_context);
58
59public:
60 ~DiskObserverContext();
61};
62
66class DiskUsage {
67 friend class Ditto;
68 friend class Store;
69 friend class Attachment;
70 friend class Authenticator;
71
72private:
73 DiskUsage();
74 DiskUsage(std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper,
75 FsComponent component);
79 FsComponent component;
80 std::shared_ptr<DittoHandleWrapper> ditto_handle_wrapper;
81
82public:
83 std::shared_ptr<DiskObserverContext> observe(DiskUsageCallback cb);
84 DiskUsageChild exec();
85};
86
87} // namespace ditto
88
89#endif
Definition DiskUsage.hpp:22
Provides access to Collections and a write transaction API.
Definition Store.hpp:29