Remoto - VFS: VFS_ephemeral.h Source File
Remoto - VFS
VFS_ephemeral.h
Go to the documentation of this file.
1 #ifndef VFS_EPHEMERAL_H
2 #define VFS_EPHEMERAL_H
3 
4 #include <QJsonObject>
5 #include <QMimeDatabase>
6 #include <QDateTime>
7 
8 #include "VFS_base/VFS_node.h"
9 
10 class VFS_ephemeral : public VFS_node
11 {
12  Q_OBJECT
13 
14  public:
15  Q_INVOKABLE explicit VFS_ephemeral(bool container, bool raw=false);
16  virtual ~VFS_ephemeral();
17 
18  virtual VFS_node *find(VFS_request *r);
19  virtual bool isContainer();
20 
21  virtual QString reportDetails();
22 
23  virtual VFS_node *append(QString name, VFS_node *node, bool containerCheck=true, QString user="server");
24 
25  void populateMetadata(QString name);
26 
27  protected:
28  static QMimeDatabase _mimeDatabase;
29 
30  virtual QByteArray icon();
31 
32  virtual void ls(VFS_request *r);
33  virtual void read(VFS_request *r);
34  virtual void write(VFS_request *r);
35  virtual void metadata(VFS_request *r);
36  virtual void submit(VFS_request *r);
37  //virtual void rm(VFS_request *r);
38  //virtual void subscribe(VFS_request *r);
39 
40  virtual void fetchRange(VFS_request *r);
41 
42  quint64 size();
43 
44  private:
45  bool _container;
46  bool _raw;
47  QJsonObject _metadata;
48  QJsonObject _data;
49  QByteArray _rawData;
50 
51  QDateTime _modified;
52 
53  public slots:
54  virtual void applyDiff(VFS_request *r);
55 };
56 
57 #endif // VFS_HD_H
A VFS_datastore subclass for storing data directly in memory as if it was a filesystem.
Definition: VFS_ephemeral.h:11
QJsonObject _data
Definition: VFS_ephemeral.h:48
void populateMetadata(QString name)
Use an incoming file type to try to populate mime type.
Q_INVOKABLE VFS_ephemeral(bool container, bool raw=false)
Create a VFS_ephemeral node.
QByteArray _rawData
Definition: VFS_ephemeral.h:49
virtual QByteArray icon()
The "disk" icon found in the VFS_icons library.
virtual void fetchRange(VFS_request *r)
Fetch a byte range within a file.
virtual VFS_node * find(VFS_request *r)
Find a node using a VFS_request.
quint64 size()
Return the size of the data in this node.
virtual void write(VFS_request *r)
Write data to this node.
virtual void metadata(VFS_request *r)
Fetch the metadata for this node.
virtual bool isContainer()
The VFS_ephemeral node is a container or a document.
virtual void ls(VFS_request *r)
List the contents of a directory.
virtual void read(VFS_request *r)
Read the contents of this node.
QDateTime _modified
Definition: VFS_ephemeral.h:51
static QMimeDatabase _mimeDatabase
The mime database, used for metadata.
Definition: VFS_ephemeral.h:28
virtual VFS_node * append(QString name, VFS_node *node, bool containerCheck=true, QString user="server")
Append a VFS_ephemeral node as a child of this node.
virtual ~VFS_ephemeral()
virtual void submit(VFS_request *r)
Submit data to this node, applying the data as a diff.
QJsonObject _metadata
Definition: VFS_ephemeral.h:47
virtual QString reportDetails()
Report the current cache usage.
virtual void applyDiff(VFS_request *r)
Apply a diff to this node's data.
VFS_node is the base class from which all other VFS_node classes derive.
Definition: VFS_node.h:143
The base class for all requests between nodes.
Definition: VFS_node.h:54