Remoto - VFS: VFS_tcp_export_client.h Source File
Remoto - VFS
VFS_tcp_export_client.h
Go to the documentation of this file.
1 #ifndef VFS_TCP_EXPORT_CLIENT_H
2 #define VFS_TCP_EXPORT_CLIENT_H
3 
5 
7 
9 {
10  Q_OBJECT
11 
12  friend class VFS_tcp_export_request;
14 
15  public:
16  explicit VFS_tcp_export_client(QTcpSocket *socket, QString exportRoot, bool ssl=false, QSslConfiguration sslConfiguration=QSslConfiguration(), QByteArray icon="");
17  virtual ~VFS_tcp_export_client();
18 
19  protected:
20  QMap<VFS_node *, QString> _sourcePathMap;
21  QString _exportRoot;
22  QByteArray _icon;
23 
24  QMap<QString, QList<VFS_tcp_export_request *> > _queuedRequests;
25 
26  virtual void addSourcePathMap(VFS_node *source, QString path);
27 
28  //subscription functions
29  // virtual void subscribe(VFS_request *r);
30  // virtual void unsubscribe(VFS_request *r);
31  // virtual void unsubscribePath(QString path);
32 
33  //operation functions
34  // virtual void ls(VFS_request *r);
35  // virtual void read(VFS_request *r);
36  // virtual void write(VFS_request *r);
37  // virtual void metadata(VFS_request *r);
38  // virtual void report(VFS_request *r);
39  // virtual void submit(VFS_request *r);
40  // virtual void rm(VFS_request *r);
41 
42 
43  protected slots:
44  virtual void receiveResponse(VFS_request *t);
45  virtual void applyDiff(VFS_request *t);
46 
47  virtual void receiveMessage(QByteArray message);
49 
50  virtual void removeSourcePathMap(VFS_node *n);
51  virtual void sendCodeDirectory();
52 };
53 
55 {
56  friend class VFS_tcp_export_client;
58 
59  public:
60  //VFS_tcp_export_request(postID id, VFS_request::requestType type, VFS_node *t, QString path, QString user);
61  VFS_tcp_export_request(VFS_tcp_client *origin, QString exportRoot);
62  virtual ~VFS_tcp_export_request();
63 
64  virtual VFS_request *createDiff(VFS_node *origin, QString originPath);
65 
66  virtual QByteArray toJson(postID id=0, bool ignoreSuccess=false, bool includeInitialPath=false);
67  virtual void fromJsonObject(QJsonObject json, bool includeInitialPath=false);
68 
69  static VFS_tcp_export_request *fromMessage(QByteArray message, QString exportRoot, VFS_tcp_client *origin);
70 
71  protected:
73  QString _exportRoot;
74 
76 
77 
78  virtual void execute();
79 
80  private:
81 
82 };
83 
84 #endif // VFS_TCP_EXPORT_CLIENT_H
quint16 postID
Definition: VFS_node.h:24
VFS_node is the base class from which all other VFS_node classes derive.
Definition: VFS_node.h:143
virtual QByteArray icon()
Fetch the icon for a node.
Definition: VFS_node.cpp:655
The base class for all requests between nodes.
Definition: VFS_node.h:54
The socket client created by VFS_tcp_export.
QByteArray _icon
An icon that can override the icon provided by the shared node.
QMap< QString, QList< VFS_tcp_export_request * > > _queuedRequests
The requests that have been queued, per session id, due to a session definition request.
virtual void applyDiff(VFS_request *t)
virtual void receiveMessage(QByteArray message)
virtual void receiveResponse(VFS_request *t)
VFS_tcp_export_client(QTcpSocket *socket, QString exportRoot, bool ssl=false, QSslConfiguration sslConfiguration=QSslConfiguration(), QByteArray icon="")
virtual void removeSourcePathMap(VFS_node *n)
Remove a _sourcePathMap entry, if found.
virtual void addSourcePathMap(VFS_node *source, QString path)
Add a VFS_tcp_export_client::_sourcePathMap entry for a path from a client's perspective to a VFS_nod...
virtual void sendCodeDirectory()
DOCME.
QMap< VFS_node *, QString > _sourcePathMap
Map between nodes and subscription paths.
QString _exportRoot
The VFS path to export.
virtual void executeMessageRequest(VFS_tcp_export_request *r)
Execute a message request.
The VFS_tcp_export class needs path information to translate between mounted VFS instances.
virtual VFS_request * createDiff(VFS_node *origin, QString originPath)
VFS_tcp_export_request::createDiff.
bool _pendingSession
This request is pending a session definition.
virtual QByteArray toJson(postID id=0, bool ignoreSuccess=false, bool includeInitialPath=false)
Serialize this request.
static VFS_tcp_export_request * fromMessage(QByteArray message, QString exportRoot, VFS_tcp_client *origin)
postID _id
The ID of this request.
virtual void fromJsonObject(QJsonObject json, bool includeInitialPath=false)
Deserialize a JSON string into a VFS_request.
QString _exportRoot
The VFS node being exported.
VFS_tcp_export_request(VFS_tcp_client *origin, QString exportRoot)
virtual void execute()
DOCME.
A static class coupled with VFS_tcp_export_client for managing sessions.