#ifndef ROOT_TServerSocket
#define ROOT_TServerSocket
#ifndef ROOT_TSocket
#include "TSocket.h"
#endif
#include <string>
class TSeqCollection;
typedef Int_t (*SrvAuth_t)(TSocket *sock, const char *, const char *,
std::string&, Int_t &, Int_t &, std::string &,
TSeqCollection *);
typedef Int_t (*SrvClup_t)(TSeqCollection *);
const UChar_t kSrvAuth = 0x1;
const UChar_t kSrvNoAuth = (kSrvAuth<<4);
class TServerSocket : public TSocket {
private:
TSeqCollection *fSecContexts;
static SrvAuth_t fgSrvAuthHook;
static SrvClup_t fgSrvAuthClupHook;
static UChar_t fgAcceptOpt;
TServerSocket() : fSecContexts(0) { }
TServerSocket(const TServerSocket &);
void operator=(const TServerSocket &);
Bool_t Authenticate(TSocket *);
public:
enum { kDefaultBacklog = 10 };
TServerSocket(Int_t port, Bool_t reuse = kFALSE, Int_t backlog = kDefaultBacklog,
Int_t tcpwindowsize = -1);
TServerSocket(const char *service, Bool_t reuse = kFALSE,
Int_t backlog = kDefaultBacklog, Int_t tcpwindowsize = -1);
virtual ~TServerSocket();
virtual TSocket *Accept(UChar_t Opt = 0);
virtual TInetAddress GetLocalInetAddress();
virtual Int_t GetLocalPort();
Int_t Send(const TMessage &)
{ MayNotUse("Send(const TMessage &)"); return 0; }
Int_t Send(Int_t)
{ MayNotUse("Send(Int_t)"); return 0; }
Int_t Send(Int_t, Int_t)
{ MayNotUse("Send(Int_t, Int_t)"); return 0; }
Int_t Send(const char *, Int_t = kMESS_STRING)
{ MayNotUse("Send(const char *, Int_t)"); return 0; }
Int_t SendObject(const TObject *, Int_t = kMESS_OBJECT)
{ MayNotUse("SendObject(const TObject *, Int_t)"); return 0; }
Int_t SendRaw(const void *, Int_t, ESendRecvOptions = kDefault)
{ MayNotUse("SendRaw(const void *, Int_t, ESendRecvOptions)"); return 0; }
Int_t Recv(TMessage *&)
{ MayNotUse("Recv(TMessage *&)"); return 0; }
Int_t Recv(Int_t &, Int_t &)
{ MayNotUse("Recv(Int_t &, Int_t &)"); return 0; }
Int_t Recv(char *, Int_t)
{ MayNotUse("Recv(char *, Int_t)"); return 0; }
Int_t Recv(char *, Int_t, Int_t &)
{ MayNotUse("Recv(char *, Int_t, Int_t &)"); return 0; }
Int_t RecvRaw(void *, Int_t, ESendRecvOptions = kDefault)
{ MayNotUse("RecvRaw(void *, Int_t, ESendRecvOptions)"); return 0; }
static UChar_t GetAcceptOptions();
static void SetAcceptOptions(UChar_t Opt);
static void ShowAcceptOptions();
ClassDef(TServerSocket,1)
};
#endif