XRootD
Loading...
Searching...
No Matches
XrdNetMsg.hh
Go to the documentation of this file.
1
#ifndef __XRDNETMSG_H__
2
#define __XRDNETMSG_H__
3
/******************************************************************************/
4
/* */
5
/* X r d N e t M s g . h h */
6
/* */
7
/* (c) 2007 by the Board of Trustees of the Leland Stanford, Jr., University */
8
/* All Rights Reserved */
9
/* Produced by Andrew Hanushevsky for Stanford University under contract */
10
/* DE-AC02-76-SFO0515 with the Department of Energy */
11
/* */
12
/* This file is part of the XRootD software suite. */
13
/* */
14
/* XRootD is free software: you can redistribute it and/or modify it under */
15
/* the terms of the GNU Lesser General Public License as published by the */
16
/* Free Software Foundation, either version 3 of the License, or (at your */
17
/* option) any later version. */
18
/* */
19
/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22
/* License for more details. */
23
/* */
24
/* You should have received a copy of the GNU Lesser General Public License */
25
/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26
/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27
/* */
28
/* The copyright holder's institutional names and contributor's names may not */
29
/* be used to endorse or promote products derived from this software without */
30
/* specific prior written permission of the institution or contributor. */
31
/******************************************************************************/
32
33
#include <cstdlib>
34
#include <cstring>
35
#ifndef WIN32
36
#include <strings.h>
37
#include <unistd.h>
38
#include <netinet/in.h>
39
#include <sys/socket.h>
40
#else
41
#include <Winsock2.h>
42
#endif
43
44
#include "
XrdNet/XrdNetAddr.hh
"
45
46
union
XrdNetSockAddr
;
47
class
XrdSysError
;
48
49
class
XrdNetMsg
50
{
51
public
:
52
53
//------------------------------------------------------------------------------
66
//------------------------------------------------------------------------------
67
68
int
Send
(
const
char
*buff,
// The data to be send
69
int
blen=0,
// Length (strlen(buff) if zero)
70
const
char
*dest=0,
// Hostname to send UDP datagram
71
int
tmo=-1);
// Timeout in ms (-1 = none)
72
73
//------------------------------------------------------------------------------
86
//------------------------------------------------------------------------------
87
88
int
Send
(
const
char
*dest,
// EP: host:port
89
const
XrdNetSockAddr
&netSA,
// Address of endpoint
90
const
char
*buff,
// The data to be send
91
int
blen=0,
// Length (strlen(buff) if zero)
92
int
tmo=-1);
// Timeout in ms (-1 = none)
93
94
//------------------------------------------------------------------------------
106
//------------------------------------------------------------------------------
107
108
int
Send
(
const
struct
iovec
iov
[],
// Remaining parms as above
109
int
iovcnt,
// Number of elements in iovec
110
const
char
*dest=0,
// Hostname to send UDP datagram
111
int
tmo=-1);
// Timeout in ms (-1 = none)
112
//------------------------------------------------------------------------------
122
//------------------------------------------------------------------------------
123
124
XrdNetMsg
(
XrdSysError
*erp,
const
char
*dest=0,
bool
*aOK=0);
125
126
//------------------------------------------------------------------------------
128
//------------------------------------------------------------------------------
129
130
~XrdNetMsg
() {
if
(
FD
>= 0)
close
(
FD
);}
131
132
protected
:
133
int
OK2Send
(
int
timeout,
const
char
*dest);
134
int
retErr
(
int
ecode,
const
char
*theDest);
135
int
retErr
(
int
ecode,
XrdNetAddr
*theDest);
136
137
XrdSysError
*
eDest
;
138
XrdNetAddr
dfltDest
;
139
XrdNetAddr
specDest
;
140
int
destOK
;
141
int
FD
;
142
};
143
#endif
XrdNetAddr.hh
XrdNetSockAddr
Definition
XrdNetSockAddr.hh:43
close
#define close(a)
Definition
XrdPosix.hh:43
XrdNetAddr
Definition
XrdNetAddr.hh:42
XrdNetMsg
Definition
XrdNetMsg.hh:50
XrdNetMsg::retErr
int retErr(int ecode, const char *theDest)
Definition
XrdNetMsg.cc:163
XrdNetMsg::specDest
XrdNetAddr specDest
Definition
XrdNetMsg.hh:139
XrdNetMsg::Send
int Send(const char *buff, int blen=0, const char *dest=0, int tmo=-1)
Definition
XrdNetMsg.cc:70
XrdNetMsg::FD
int FD
Definition
XrdNetMsg.hh:141
XrdNetMsg::dfltDest
XrdNetAddr dfltDest
Definition
XrdNetMsg.hh:138
XrdNetMsg::eDest
XrdSysError * eDest
Definition
XrdNetMsg.hh:137
XrdNetMsg::OK2Send
int OK2Send(int timeout, const char *dest)
Definition
XrdNetMsg.cc:144
XrdNetMsg::destOK
int destOK
Definition
XrdNetMsg.hh:140
XrdNetMsg::~XrdNetMsg
~XrdNetMsg()
Destructor.
Definition
XrdNetMsg.hh:130
XrdSysError
Definition
XrdSysError.hh:90
iov
Definition
XrdOucIOVec.hh:65
XrdNet
XrdNetMsg.hh
Generated by
1.9.8