From 8c29602b21efacced9d7ff4cd1f3c4101dda5f65 Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Thu, 1 Jul 1999 20:42:30 +0000 Subject: proper error handling and auto-reconnect modified rfsv enums. --- lib/rfsv32.h | 146 ++++++++++++++++++++++++++++++----------------------------- 1 file changed, 74 insertions(+), 72 deletions(-) (limited to 'lib/rfsv32.h') diff --git a/lib/rfsv32.h b/lib/rfsv32.h index 083bd3d..f6aeceb 100644 --- a/lib/rfsv32.h +++ b/lib/rfsv32.h @@ -9,6 +9,8 @@ class rfsv32 { public: rfsv32(ppsocket * skt); ~rfsv32(); + void reset(); + void reconnect(); long dir(const char *name, bufferArray * files); long dircount(const char *name, long *count); @@ -40,12 +42,80 @@ class rfsv32 { char *opErr(long status); enum seek_mode { - PSEEK_SET = 1, - PSEEK_CUR = 2, - PSEEK_END = 3 + PSI_SEEK_SET = 1, + PSI_SEEK_CUR = 2, + PSI_SEEK_END = 3 }; - private: + enum file_attrib { + PSI_ATTR_RONLY = 0x0001, + PSI_ATTR_HIDDEN = 0x0002, + PSI_ATTR_SYSTEM = 0x0004, + PSI_ATTR_DIRECTORY = 0x0010, + PSI_ATTR_ARCHIVE = 0x0020, + PSI_ATTR_VOLUME = 0x0040, + PSI_ATTR_NORMAL = 0x0080, + PSI_ATTR_TEMPORARY = 0x0100, + PSI_ATTR_COMPRESSED = 0x0800 + }; + + enum open_mode { + PSI_OMODE_SHARE_EXCLUSIVE = 0x0000, + PSI_OMODE_SHARE_READERS = 0x0001, + PSI_OMODE_SHARE_ANY = 0x0002, + PSI_OMODE_BINARY = 0x0000, + PSI_OMODE_TEXT = 0x0020, + PSI_OMODE_READ_WRITE = 0x0200 + }; + + enum errs { + PSI_ERR_NONE = 0, + PSI_ERR_NOT_FOUND = -1, + PSI_ERR_GENERAL = -2, + PSI_ERR_CANCEL = -3, + PSI_ERR_NO_MEMORY = -4, + PSI_ERR_NOT_SUPPORTED = -5, + PSI_ERR_ARGUMENT = -6, + PSI_ERR_TOTAL_LOSS_OF_PRECISION = -7, + PSI_ERR_BAD_HANDLE = -8, + PSI_ERR_OVERFLOW = -9, + PSI_ERR_UNDERFLOW = -10, + PSI_ERR_ALREADY_EXISTS = -11, + PSI_ERR_PATH_NOT_FOUND = -12, + PSI_ERR_DIED = -13, + PSI_ERR_IN_USE = -14, + PSI_ERR_SERVER_TERMINATED = -15, + PSI_ERR_SERVER_BUSY = -16, + PSI_ERR_COMPLETION = -17, + PSI_ERR_NOT_READY = -18, + PSI_ERR_UNKNOWN = -19, + PSI_ERR_CORRUPT = -20, + PSI_ERR_ACCESS_DENIED = -21, + PSI_ERR_LOCKED = -22, + PSI_ERR_WRITE = -23, + PSI_ERR_DISMOUNTED = -24, + PSI_ERR_EoF = -25, + PSI_ERR_DISK_FULL = -26, + PSI_ERR_BAD_DRIVER = -27, + PSI_ERR_BAD_NAME = -28, + PSI_ERR_COMMS_LINE_FAIL = -29, + PSI_ERR_COMMS_FRAME = -30, + PSI_ERR_COMMS_OVERRUN = -31, + PSI_ERR_COMMS_PARITY = -32, + PSI_ERR_TIMEOUT = -33, + PSI_ERR_COULD_NOT_CONNECT = -34, + PSI_ERR_COULD_NOT_DISCONNECT = -35, + PSI_ERR_DISCONNECTED = -36, + PSI_ERR_BAD_LIBRARY_ENTRY_POINT = -37, + PSI_ERR_BAD_DESCRIPTOR = -38, + PSI_ERR_ABORT = -39, + PSI_ERR_TOO_BIG = -40, + PSI_ERR_DIVIDE_BY_ZERO = -41, + PSI_ERR_BAD_POWER = -42, + PSI_ERR_DIR_FULL = -43 + }; + + private: enum commands { CLOSE_HANDLE = 0x01, OPEN_DIR = 0x10, @@ -83,74 +153,6 @@ class rfsv32 { REPLACE = 0x32 }; - enum file_attrib { - READ_ONLY = 0x0001, - HIDDEN = 0x0002, - SYSTEM = 0x0004, - DIRECTORY = 0x0010, - ARCHIVE = 0x0020, - VOLUME = 0x0040, - NORMAL = 0x0080, - TEMPORARY = 0x0100, - COMPRESSED = 0x0800 - }; - - enum open_mode { - SHARE_EXCLUSIVE = 0x0000, - SHARE_READERS = 0x0001, - SHARE_ANY = 0x0002, - BINARY = 0x0000, - TEXT = 0x0020, - READ_WRITE = 0x0200 - }; - - enum errs { - NONE = 0, - NOT_FOUND = -1, - GENERAL = -2, - CANCEL = -3, - NO_MEMORY = -4, - NOT_SUPPORTED = -5, - ARGUMENT = -6, - TOTAL_LOSS_OF_PRECISION = -7, - BAD_HANDLE = -8, - OVERFLOW = -9, - UNDERFLOW = -10, - ALREADY_EXISTS = -11, - PATH_NOT_FOUND = -12, - DIED = -13, - IN_USE = -14, - SERVER_TERMINATED = -15, - SERVER_BUSY = -16, - COMPLETION = -17, - NOT_READY = -18, - UNKNOWN = -19, - CORRUPT = -20, - ACCESS_DENIED = -21, - LOCKED = -22, - WRITE = -23, - DISMOUNTED = -24, - EoF = -25, - DISK_FULL = -26, - BAD_DRIVER = -27, - BAD_NAME = -28, - COMMS_LINE_FAIL = -29, - COMMS_FRAME = -30, - COMMS_OVERRUN = -31, - COMMS_PARITY = -32, - PSI_TIMEOUT = -33, - COULD_NOT_CONNECT = -34, - COULD_NOT_DISCONNECT = -35, - DISCONNECTED = -36, - BAD_LIBRARY_ENTRY_POINT = -37, - BAD_DESCRIPTOR = -38, - ABORT = -39, - TOO_BIG = -40, - DIVIDE_BY_ZERO = -41, - BAD_POWER = -42, - DIR_FULL = -43 - }; - const char *getConnectName(); // Communication -- cgit v1.2.3