diff options
author | Fritz Elfert <felfert@to.com> | 2000-08-07 23:42:40 +0000 |
---|---|---|
committer | Fritz Elfert <felfert@to.com> | 2000-08-07 23:42:40 +0000 |
commit | 68d5fd192fee358ad195c32b47333f8f87ae13f2 (patch) | |
tree | 59f865b9679830a006c5c35fb13dcf8f81b85099 /lib/rfsv.cc | |
parent | 50dee0db8d5117ed3b9691140ceb02d8aac292d1 (diff) | |
download | plptools-68d5fd192fee358ad195c32b47333f8f87ae13f2.tar.gz plptools-68d5fd192fee358ad195c32b47333f8f87ae13f2.tar.bz2 plptools-68d5fd192fee358ad195c32b47333f8f87ae13f2.zip |
General cleanup:
- Corrected some operators of bufferArray
- Added more constructors to PsiTime
- Added one more fallback for Timezone calculation in PsiTime
- Use PsiTime in rfsv
- Moved some common methods from rfsv16/32 to rfsv
- Added more kdoc comments.
- Made interface more robust (added const whereever possible,
changed pointer arguments to references)
Diffstat (limited to 'lib/rfsv.cc')
-rw-r--r-- | lib/rfsv.cc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/rfsv.cc b/lib/rfsv.cc index 0b7fd42..cd13cb3 100644 --- a/lib/rfsv.cc +++ b/lib/rfsv.cc @@ -1,4 +1,6 @@ #include "rfsv.h" +#include "ppsocket.h" +#include "bufferstore.h" #include "Enum.h" ENUM_DEFINITION(rfsv::errs, rfsv::E_PSI_GEN_NONE) { @@ -78,3 +80,66 @@ ENUM_DEFINITION(rfsv::errs, rfsv::E_PSI_GEN_NONE) { stringRep.add(rfsv::E_PSI_INTERNAL, "libplp internal error"); } +const char *rfsv::getConnectName(void) { + return "SYS$RFSV"; +} + +rfsv::~rfsv() { + bufferStore a; + a.addStringT("Close"); + if (status == E_PSI_GEN_NONE) + skt->sendBufferStore(a); + skt->closeSocket(); +} + +void rfsv::reconnect(void) +{ + skt->closeSocket(); + skt->reconnect(); + serNum = 0; + reset(); +} + +void rfsv::reset(void) { + bufferStore a; + status = E_PSI_FILE_DISC; + a.addStringT(getConnectName()); + if (skt->sendBufferStore(a)) { + if (skt->getBufferStore(a) == 1) { + if (!strcmp(a.getString(0), "Ok")) + status = E_PSI_GEN_NONE; + } + } +} + +Enum<rfsv::errs> rfsv::getStatus(void) { + return status; +} + +// beware this returns static data +const char * const rfsv:: +attr2String(const long attr) +{ + static char buf[11]; + buf[0] = ((attr & PSI_A_DIR) ? 'd' : '-'); + buf[1] = ((attr & PSI_A_READ) ? 'r' : '-'); + buf[2] = ((attr & PSI_A_RDONLY) ? '-' : 'w'); + buf[3] = ((attr & PSI_A_HIDDEN) ? 'h' : '-'); + buf[4] = ((attr & PSI_A_SYSTEM) ? 's' : '-'); + buf[5] = ((attr & PSI_A_ARCHIVE) ? 'a' : '-'); + buf[6] = ((attr & PSI_A_VOLUME) ? 'v' : '-'); + + // EPOC + buf[7] = ((attr & PSI_A_NORMAL) ? 'n' : '-'); + buf[8] = ((attr & PSI_A_TEMP) ? 't' : '-'); + buf[9] = ((attr & PSI_A_COMPRESSED) ? 'c' : '-'); + + // SIBO + buf[7] = ((attr & PSI_A_EXEC) ? 'x' : buf[7]); + buf[8] = ((attr & PSI_A_STREAM) ? 'b' : buf[8]); + buf[9] = ((attr & PSI_A_TEXT) ? 't' : buf[9]); + + buf[10] = '\0'; + return (char *) (&buf); +} + |