aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rfsvfactory.cc
diff options
context:
space:
mode:
authorFritz Elfert <felfert@to.com>2001-02-06 01:01:46 +0000
committerFritz Elfert <felfert@to.com>2001-02-06 01:01:46 +0000
commita9fe8f28a4a9aaf1d9b84dbc6907849ace87f66e (patch)
tree0dd290cdf04cfd17a4ab4d0eb86bcb48137a02cb /lib/rfsvfactory.cc
parenta8787d39b2bf1851cdea64a5e0eccc2aff7f15de (diff)
downloadplptools-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.cc31
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;
}
-