#include <sstream.h>
Public Member Functions | |
| sstream () | |
| sstream (char *name, char *service) | |
| sstream (char *name, char *service, char *from) | |
| ~sstream () | |
| const char * | hostname () |
| const char * | servicename () |
| int | is_connected () |
| void | connectTo (char *name, char *service) |
| void | connectTo (char *name, char *service, char *from) |
| void | disconnect () |
Private Attributes | |
| char | _name [256] |
| char | _service [256] |
| int | connected |
Definition at line 24 of file sstream.h.
|
|
Definition at line 29 of file sstream.h. References _service, and connected.
|
|
||||||||||||
|
Definition at line 35 of file sstream.h.
00036 :iosockinet(sockbuf::sock_stream) {
00037 rdbuf()->setname ("upstream server socket");
00038 connectTo(name, service);
00039 }
|
|
||||||||||||||||
|
Definition at line 40 of file sstream.h. References connectTo().
00041 :iosockinet(sockbuf::sock_stream) {
00042 rdbuf()->setname ("upstream server socket");
00043 connectTo(name, service, from);
00044 }
|
|
|
Definition at line 45 of file sstream.h. References disconnect().
00045 {
00046 disconnect();
00047 }
|
|
||||||||||||||||
|
Definition at line 23 of file sstream.cc. References _service, connected, disconnect(), is_connected(), slog, and VERB.
00024 {
00025 char buf[1024];
00026
00027 if (is_connected())
00028 disconnect();
00029 strcpy(_name, name);
00030 strcpy(_service, service);
00031
00032 try {
00033 if ((strcmp(from, "") != 0)) {
00034 VERB(slog.
00035 p(Logger::
00036 Debug) <<
00037 "sstream::connectTo using interface " << from
00038 << "\n");
00039 sockinetaddr bindAddr(from);
00040 (*((iosockinet *) this))->bind(bindAddr);
00041 }
00042 }
00043 catch(sockerr e) {
00044 sprintf(buf, "can't bind to %s\n", from);
00045 slog.
00046 p(Logger::
00047 Error) << "sstream::connectTo: can't bind to " <<
00048 from << " sockerr code: " << e.serrno()
00049 << " sockerr operation: " << e.operation()
00050 << " sockerrtext: " << e.errstr() << "\n";
00051 setstate(ios::badbit);
00052 return;
00053 }
00054
00055 try {
00056 VERB(slog.
00057 p(Logger::
00058 Debug) << "sstream::connectTo connecting to " <<
00059 name << " service " << service << "\n");
00060 sockinetaddr serverAddr(name, service);
00061 (*this)->connect(serverAddr);
00062 }
00063 catch(sockerr e) {
00064 sprintf(buf, "cannot connect to %s (%s)\n", name, service);
00065 slog.
00066 p(Logger::
00067 Error) << "sstream::connectTo can't connect to " <<
00068 name << " " << service << " sockerr code: " << e.
00069 serrno() << " sockerr operation: " << e.operation()
00070 << " sockerrtext: " << e.errstr() << "\n";
00071 setstate(ios::badbit);
00072 return;
00073 }
00074
00075 try {
00076 (*this)->recvtimeout(-1);
00077 //(*this)->sendtimeout (-1);
00078 (*this)->keepalive(1);
00079 }
00080 catch(sockerr e) {
00081 slog.
00082 p(Logger::
00083 Error) <<
00084 "sstream::connectTo: setting keepalive error " <<
00085 " sockerr code: " << e.
00086 serrno() << " sockerr operation: " << e.operation()
00087 << " sockerrtext: " << e.errstr() << "\n";
00088 // FIXME: is this a fatal error?
00089 }
00090
00091 connected = 1;
00092 clear();
00093 }
|
|
||||||||||||
|
Definition at line 18 of file sstream.cc. Referenced by RServer::connect(), and sstream().
00019 {
00020 connectTo(name, service, "");
00021 }
|
|
|
Definition at line 95 of file sstream.cc. References _service, connected, Logger::p(), slog, and VERB. Referenced by connectTo(), and ~sstream().
00096 {
00097 sockbuf *pS;
00098
00099 VERB(slog.p(Logger::Debug) << "sstream::disconnect()\n");
00100 try {
00101 pS = rdbuf();
00102 pS->shutdown(sockbuf::shut_readwrite);
00103 } catch (sockerr e) {
00104 VERB(slog.p(Logger::Debug) << "sstream::disconnect() sockerror"
00105 << e.serrno() << " sockerr operation: "
00106 << e.operation() << " sockerrtext: " << e.errstr()
00107 << "\n");
00108 }
00109 _name[0] = '\0';
00110 _service[0] = '\0';
00111 connected = 0;
00112 setstate(ios::badbit);
00113 }
|
|
|
Definition at line 49 of file sstream.h.
00049 {
00050 return _name;
00051 }
|
|
|
Definition at line 115 of file sstream.cc. References connected. Referenced by connectTo().
00116 {
00117 return connected;
00118 }
|
|
|
Definition at line 52 of file sstream.h. References _service.
00052 {
00053 return _service;
00054 }
|
|
|
|
|
|
Definition at line 26 of file sstream.h. Referenced by connectTo(), disconnect(), servicename(), and sstream(). |
|
|
Definition at line 27 of file sstream.h. Referenced by connectTo(), disconnect(), is_connected(), and sstream(). |
1.3.6-20040222