00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef ARTCPCONNECTION_H
00028 #define ARTCPCONNECTION_H
00029
00030 #include "ArDeviceConnection.h"
00031 #include <string>
00032
00033 #include "ariaTypedefs.h"
00034 #include "ArSocket.h"
00035
00037 class ArTcpConnection: public ArDeviceConnection
00038 {
00039 public:
00041 ArTcpConnection();
00043 virtual ~ArTcpConnection();
00044
00046 int open(const char * host = NULL, int port = 8101);
00047
00048 void setPort(const char *host = NULL, int port = 8101);
00049 virtual bool openSimple(void);
00050 virtual int getStatus(void);
00051 virtual bool close(void);
00052 virtual int read(const char *data, unsigned int size,
00053 unsigned int msWait = 0);
00054 virtual int write(const char *data, unsigned int size);
00055 virtual const char * getOpenMessage(int messageNumber);
00056 virtual ArTime getTimeRead(int index);
00057 virtual bool isTimeStamping(void);
00058
00060 std::string getHost(void);
00062 int getPort(void);
00063
00065 int internalOpen(void);
00066
00068 void setSocket(ArSocket *socket);
00070 ArSocket *getSocket(void);
00073 void setStatus(int status);
00074
00075 enum Open {
00076 OPEN_NET_FAIL = 1,
00077 OPEN_BAD_HOST,
00078 OPEN_NO_ROUTE,
00079 OPEN_CON_REFUSED
00080 };
00081
00082
00083
00084 protected:
00085 void buildStrMap(void);
00086
00087 ArStrMap myStrMap;
00088 bool myOwnSocket;
00089 ArSocket *mySocket;
00090 int myStatus;
00091
00092 std::string myHostName;
00093 int myPortNum;
00094 };
00095
00096 #endif //ARTCPCONNECTION_H