diff options
Diffstat (limited to 'netfs/msgtypes.h')
-rw-r--r-- | netfs/msgtypes.h | 348 |
1 files changed, 0 insertions, 348 deletions
diff --git a/netfs/msgtypes.h b/netfs/msgtypes.h deleted file mode 100644 index 0f7b3f0..0000000 --- a/netfs/msgtypes.h +++ /dev/null @@ -1,348 +0,0 @@ -#ifndef MSGTYPES_H -#define MSGTYPES_H - -#include "smartpointer.h" -#include "comms.h" -#include <map> -#include <string> -#include <vector> -#include <sys/stat.h> -#include <stdint.h> - -typedef DataPayloadPtr (*MessageFactory)(); -typedef std::map<uint16_t, MessageFactory> MessageFactories; -MessageFactories & MsgFacs(); - -template <class Cls> -class Factory { - public: - Factory() { MsgFacs()[Cls::TypeID] = &create; } - static DataPayloadPtr create() { - return new TypedPayload<Cls>(); - } -}; - -class ContentBase : public IsRefCounted { - public: - ~ContentBase() = 0; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class RequestBase : public ContentBase { - public: - uid_t uid; - gid_t gid; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class SimpleInt : public ContentBase { - public: - int value; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class AccessRequest : public RequestBase { - public: - std::string path; - int access; - const static uint16_t TypeID; - typedef SimpleInt Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class GetAttrReply : public ContentBase { - public: - int res; - struct stat val; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class GetAttrRequest : public RequestBase { - public: - std::string path; - const static uint16_t TypeID; - typedef GetAttrReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class FgetAttrRequest : public RequestBase { - public: - int handle; - const static uint16_t TypeID; - typedef GetAttrReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class OpenDirReply : public ContentBase { - public: - int handle; - int error; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class OpenDirRequest : public RequestBase { - public: - std::string path; - const static uint16_t TypeID; - typedef OpenDirReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class CloseDirReply : public ContentBase { - public: - int error; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class CloseDirRequest : public RequestBase { - public: - int handle; - const static uint16_t TypeID; - typedef CloseDirReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class ReadDirReply : public ContentBase { - public: - class Entry { - public: - std::string path; - struct stat val; - }; - typedef std::vector<Entry> Entries; - int error; - Entries entries; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class ReadDirRequest : public RequestBase { - public: - int handle; - const static uint16_t TypeID; - typedef ReadDirReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -class OpenReply : public ContentBase { - public: - int error; - int handle; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class OpenRequest : public RequestBase { - public: - std::string path; - const static uint16_t TypeID; - typedef OpenReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class CreateRequest : public RequestBase { - public: - std::string path; - mode_t mode; - const static uint16_t TypeID; - typedef OpenReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class CloseReply : public ContentBase { - public: - int error; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class CloseRequest : public RequestBase { - public: - int handle; - const static uint16_t TypeID; - typedef CloseReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class ReadReply : public ContentBase { - public: - ~ReadReply(); - int error; - char * data; - size_t size; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class ReadRequest : public RequestBase { - public: - int handle; - size_t size; - off_t offset; - const static uint16_t TypeID; - typedef ReadReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class WriteReply : public ContentBase { - public: - int error; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class WriteRequest : public RequestBase { - public: - ~WriteRequest(); - int handle; - size_t size; - char * data; - off_t offset; - const static uint16_t TypeID; - typedef WriteReply Reply; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class MkDirRequest : public RequestBase { - public: - std::string path; - mode_t mode; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class RmDirRequest : public RequestBase { - public: - std::string path; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class UnlinkRequest : public RequestBase { - public: - std::string path; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class SymlinkRequest : public RequestBase { - public: - std::string path1; - std::string path2; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class LinkRequest : public RequestBase { - public: - std::string path1; - std::string path2; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class RenameRequest : public RequestBase { - public: - std::string path1; - std::string path2; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class ReadlinkReply : public ContentBase { - public: - std::string path; - int error; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class ReadlinkRequest : public RequestBase { - public: - std::string path; - typedef ReadlinkReply Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class ChmodRequest : public RequestBase { - public: - std::string path; - mode_t mode; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class ChownRequest : public RequestBase { - public: - std::string path; - uid_t user; - gid_t group; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class TruncateRequest : public RequestBase { - public: - std::string path; - off_t size; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class FtruncateRequest : public RequestBase { - public: - int handle; - off_t size; - typedef SimpleInt Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class StatfsReply : public ContentBase { - public: - struct statvfs statfs; - int error; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; -class StatfsRequest : public RequestBase { - public: - std::string path; - typedef StatfsReply Reply; - const static uint16_t TypeID; - virtual void Send(FILE*) const; - virtual void Read(FILE*); -}; - -#define MSGTYPE(id, cls) \ - const uint16_t cls::TypeID = id; \ - namespace MsgFactories { Factory<cls> facFor##id; } -#endif - |