diff options
author | Fritz Elfert <felfert@to.com> | 2001-02-06 01:01:46 +0000 |
---|---|---|
committer | Fritz Elfert <felfert@to.com> | 2001-02-06 01:01:46 +0000 |
commit | a9fe8f28a4a9aaf1d9b84dbc6907849ace87f66e (patch) | |
tree | 0dd290cdf04cfd17a4ab4d0eb86bcb48137a02cb /lib/rfsvfactory.cc | |
parent | a8787d39b2bf1851cdea64a5e0eccc2aff7f15de (diff) | |
download | plptools-a9fe8f28a4a9aaf1d9b84dbc6907849ace87f66e.tar.gz plptools-a9fe8f28a4a9aaf1d9b84dbc6907849ace87f66e.tar.bz2 plptools-a9fe8f28a4a9aaf1d9b84dbc6907849ace87f66e.zip |
- Added KDE2 PropsDialog Plugin (incomplete)
- Fixed some KDE related autoconf stuff
- Added PlpDrive class for returning results from rfsv:devinfo
- Added auto-watch in ppsocket and finally got rid of the nasty
SIGPIPE bug. Now it's no more necessary to ignore SIGPIPE in
applications.
- Made constructors of rfsv16, rfsv32, rpcs16 and rpcs32 private to
enforce use of the factories.
- Removed error output in the factories and replaced that by error codes
which can be retrieved and evaluated by an application.
Diffstat (limited to 'lib/rfsvfactory.cc')
-rw-r--r-- | lib/rfsvfactory.cc | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/lib/rfsvfactory.cc b/lib/rfsvfactory.cc index 12bd623..3699903 100644 --- a/lib/rfsvfactory.cc +++ b/lib/rfsvfactory.cc @@ -35,10 +35,20 @@ #include "rfsvfactory.h" #include "bufferstore.h" #include "ppsocket.h" -#include "bufferarray.h" +#include "Enum.h" + +ENUM_DEFINITION(rfsvfactory::errs, rfsvfactory::FACERR_NONE) { + stringRep.add(rfsvfactory::FACERR_NONE, "no error"); + stringRep.add(rfsvfactory::FACERR_COULD_NOT_SEND, "could not send version request"); + stringRep.add(rfsvfactory::FACERR_AGAIN, "try again"); + stringRep.add(rfsvfactory::FACERR_NOPSION, "no psion connected"); + stringRep.add(rfsvfactory::FACERR_PROTVERSION, "wrong protocol version"); + stringRep.add(rfsvfactory::FACERR_NORESPONSE, "no response from ncpd"); +} rfsvfactory::rfsvfactory(ppsocket *_skt) : serNum(0) { + err = FACERR_NONE; skt = _skt; } @@ -50,15 +60,19 @@ rfsv * rfsvfactory::create(bool reconnect) // so we can instantiate the correct RFSV protocol handler for the // caller. We announce ourselves to the NCP daemon, and the relevant // RFSV module will also announce itself. + bufferStore a; - a.init(); + + err = FACERR_NONE; a.addStringT("NCP$INFO"); if (!skt->sendBufferStore(a)) { if (!reconnect) - cerr << "rfsvfactory::create couldn't send version request" << endl; else { + err = FACERR_COULD_NOT_SEND; + else { skt->closeSocket(); serNum = 0; skt->reconnect(); + err = FACERR_AGAIN; } return NULL; } @@ -73,16 +87,13 @@ rfsv * rfsvfactory::create(bool reconnect) skt->closeSocket(); serNum = 0; skt->reconnect(); + err = FACERR_NOPSION; return NULL; } // Invalid protocol version - cerr << "rfsvfactory::create received odd protocol version from -ncpd! (" << a << ")" << endl; - } else { - cerr << "rfsvfactory::create sent, response not 1" << endl; - } + err = FACERR_PROTVERSION; + } else + err = FACERR_NORESPONSE; - // No message returned. return NULL; } - |