Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TServerSocket.h
Go to the documentation of this file.
1// @(#)root/net:$Id$
2// Author: Fons Rademakers 18/12/96
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TServerSocket
13#define ROOT_TServerSocket
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TServerSocket //
19// //
20// This class implements server sockets. A server socket waits for //
21// requests to come in over the network. It performs some operation //
22// based on that request and then possibly returns a full duplex socket //
23// to the requester. The actual work is done via the TSystem class //
24// (either TUnixSystem or TWinNTSystem). //
25// //
26//////////////////////////////////////////////////////////////////////////
27
28#include "TSocket.h"
29#include <string>
30
31class TSeqCollection;
32
33namespace ROOT::Deprecated {
34
35typedef Int_t (*SrvAuth_t)(TSocket *sock, const char *, const char *,
36 std::string&, Int_t &, Int_t &, std::string &,
38typedef Int_t (*SrvClup_t)(TSeqCollection *);
39
40// These mask are globally available to manipulate the option to Accept
41const UChar_t kSrvAuth = 0x1; // Require client authentication
42const UChar_t kSrvNoAuth = (kSrvAuth<<4); // Force no client authentication
43
44} // namespace ROOT::Deprecated
45
46using SrvAuth_t R__DEPRECATED(6, 42, "Socket authentication is deprecated") = ROOT::Deprecated::SrvAuth_t;
47using SrvClup_t R__DEPRECATED(6, 42, "Socket authentication is deprecated") = ROOT::Deprecated::SrvClup_t;
48const UChar_t kSrvAuth R__DEPRECATED(6, 42, "Socket authentication is deprecated") = ROOT::Deprecated::kSrvAuth;
49const UChar_t kSrvNoAuth R__DEPRECATED(6, 42, "Socket authentication is deprecated") = ROOT::Deprecated::kSrvNoAuth;
50
51class TServerSocket : public TSocket {
52
53private:
54 TSeqCollection *fSecContexts; // List of TSecContext with cleanup info
57 static UChar_t fgAcceptOpt; // Default accept options (DEPRECATED)
58
61 void operator=(const TServerSocket &);
63
64public:
65 enum { kDefaultBacklog = 10 };
66
71 virtual ~TServerSocket();
72
73 virtual TSocket *Accept(UChar_t Opt = 0);
75 Int_t GetLocalPort() override;
76
77 Int_t Send(const TMessage &) override
78 { MayNotUse("Send(const TMessage &)"); return 0; }
79 Int_t Send(Int_t) override
80 { MayNotUse("Send(Int_t)"); return 0; }
81 Int_t Send(Int_t, Int_t) override
82 { MayNotUse("Send(Int_t, Int_t)"); return 0; }
83 Int_t Send(const char *, Int_t = kMESS_STRING) override
84 { MayNotUse("Send(const char *, Int_t)"); return 0; }
86 { MayNotUse("SendObject(const TObject *, Int_t)"); return 0; }
87 Int_t SendRaw(const void *, Int_t, ESendRecvOptions = kDefault) override
88 { MayNotUse("SendRaw(const void *, Int_t, ESendRecvOptions)"); return 0; }
89 Int_t Recv(TMessage *&) override
90 { MayNotUse("Recv(TMessage *&)"); return 0; }
91 Int_t Recv(Int_t &, Int_t &) override
92 { MayNotUse("Recv(Int_t &, Int_t &)"); return 0; }
93 Int_t Recv(char *, Int_t) override
94 { MayNotUse("Recv(char *, Int_t)"); return 0; }
95 Int_t Recv(char *, Int_t, Int_t &) override
96 { MayNotUse("Recv(char *, Int_t, Int_t &)"); return 0; }
98 { MayNotUse("RecvRaw(void *, Int_t, ESendRecvOptions)"); return 0; }
99
100 static UChar_t GetAcceptOptions() R__DEPRECATED(6, 42, "Socket authentication is deprecated");
101 static void SetAcceptOptions(UChar_t Opt) R__DEPRECATED(6, 42, "Socket authentication is deprecated");
102 static void ShowAcceptOptions() R__DEPRECATED(6, 42, "Socket authentication is deprecated");
103
104 ClassDefOverride(TServerSocket, 0); //This class implements server sockets
105};
106
107#endif
@ kMESS_STRING
@ kMESS_OBJECT
#define R__DEPRECATED(MAJOR, MINOR, REASON)
Definition RConfig.hxx:510
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:59
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char)
Definition RtypesCore.h:52
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
ESendRecvOptions
Definition TSystem.h:242
@ kDefault
Definition TSystem.h:243
ESocketBindOption
Options for binging the sockets created.
Definition TSystem.h:46
@ kInaddrAny
Any address for socket binding.
Definition TSystem.h:47
This class represents an Internet Protocol (IP) address.
Mother of all ROOT objects.
Definition TObject.h:42
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
Definition TObject.cxx:1157
Sequenceable collection abstract base class.
This class implements server sockets.
static UChar_t GetAcceptOptions() R__DEPRECATED(6
Return default options for Accept.
Int_t Recv(char *, Int_t) override
Receive a character string message of maximum max length.
Int_t Recv(Int_t &, Int_t &) override
Receives a status and a message type.
static void SetAcceptOptions(UChar_t Opt) R__DEPRECATED(6
Set default options for Accept according to modifier 'mod'.
TServerSocket(const TServerSocket &)
Int_t Send(Int_t) override
Send a single message opcode.
Int_t Send(Int_t, Int_t) override
Send a status and a single message opcode.
static UChar_t fgAcceptOpt
Int_t Recv(char *, Int_t, Int_t &) override
Receive a character string message of maximum max length.
void operator=(const TServerSocket &)
Int_t Send(const char *, Int_t=kMESS_STRING) override
Send a character string buffer.
Bool_t Authenticate(TSocket *)
Check authentication request from the client on new open connection.
Int_t RecvRaw(void *, Int_t, ESendRecvOptions=kDefault) override
Receive a raw buffer of specified length bytes.
Int_t GetLocalPort() override
Get port # to which server socket is bound. In case of error returns -1.
virtual ~TServerSocket()
Destructor: cleanup authentication stuff (if any) and close.
Int_t Recv(TMessage *&) override
Receive a TMessage object.
Int_t SendRaw(const void *, Int_t, ESendRecvOptions=kDefault) override
Send a raw buffer of specified length.
virtual TSocket * Accept(UChar_t Opt=0)
Accept a connection on a server socket.
static ROOT::Deprecated::SrvAuth_t fgSrvAuthHook
Int_t SendObject(const TObject *, Int_t=kMESS_OBJECT) override
Send an object.
TInetAddress GetLocalInetAddress() override
Return internet address of host to which the server socket is bound, i.e.
TSeqCollection * fSecContexts
Int_t Send(const TMessage &) override
Send a TMessage object.
static ROOT::Deprecated::SrvClup_t fgSrvAuthClupHook
static void ShowAcceptOptions() R__DEPRECATED(6
Print default options for Accept.
This class implements client sockets.
Definition TSocket.h:54
Int_t(* SrvAuth_t)(TSocket *sock, const char *, const char *, std::string &, Int_t &, Int_t &, std::string &, TSeqCollection *)
const UChar_t kSrvAuth
Int_t(* SrvClup_t)(TSeqCollection *)
const UChar_t kSrvNoAuth