XRootD
Loading...
Searching...
No Matches
XrdTpcPMarkManager.hh
Go to the documentation of this file.
1
//------------------------------------------------------------------------------
2
// This file is part of XrdTpcTPC
3
//
4
// Copyright (c) 2023 by European Organization for Nuclear Research (CERN)
5
// Author: Cedric Caffy <ccaffy@cern.ch>
6
// File Date: Oct 2023
7
//------------------------------------------------------------------------------
8
// XRootD is free software: you can redistribute it and/or modify
9
// it under the terms of the GNU Lesser General Public License as published by
10
// the Free Software Foundation, either version 3 of the License, or
11
// (at your option) any later version.
12
//
13
// XRootD is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
// GNU General Public License for more details.
17
//
18
// You should have received a copy of the GNU Lesser General Public License
19
// along with XRootD. If not, see <http://www.gnu.org/licenses/>.
20
//------------------------------------------------------------------------------
21
#ifndef XROOTD_PMARKMANAGER_HH
22
#define XROOTD_PMARKMANAGER_HH
23
24
#include "
XrdNet/XrdNetPMark.hh
"
25
#include "
XrdSec/XrdSecEntity.hh
"
26
#include "
XrdNet/XrdNetAddrInfo.hh
"
27
#include "
XrdNet/XrdNetAddr.hh
"
28
#include "
XrdHttp/XrdHttpExtHandler.hh
"
29
30
#include <map>
31
#include <memory>
32
#include <queue>
33
46
namespace
XrdTpc
47
{
48
class
PMarkManager
{
49
public
:
50
58
class
SocketInfo
{
59
public
:
60
SocketInfo
(
int
fd,
const
struct
sockaddr * sockP);
61
XrdNetAddr
netAddr
;
62
XrdSecEntity
client
;
63
};
64
65
PMarkManager
(
XrdHttpExtReq
& req);
66
80
bool
connect
(
int
fd,
const
struct
sockaddr * sockP,
size_t
sockPLen, uint32_t timeout_sec, std::stringstream & err);
81
86
bool
isEnabled
()
const
;
87
93
void
startTransfer
();
94
100
void
beginPMarks
();
101
108
void
endPmark
(
int
fd);
109
110
virtual
~PMarkManager
() =
default
;
111
private
:
120
void
addFd(
int
fd,
const
struct
sockaddr * sockP);
121
122
// The queue of socket information from which we will create the packet marking handles
123
std::queue<SocketInfo> mSocketInfos;
124
// The map of socket FD and packet marking handles
125
std::map<int,std::unique_ptr<XrdNetPMark::Handle>> mPmarkHandles;
126
// The instance of the packet marking functionality
127
XrdNetPMark
* mPmark;
128
// The XrdHttpTPC request information
129
XrdHttpExtReq
& mReq;
130
// Is true when startTransfer(...) has been called
131
bool
mTransferWillStart;
132
};
133
}
// namespace XrdTpc
134
135
#endif
//XROOTD_PMARKMANAGER_HH
XrdHttpExtHandler.hh
XrdNetAddrInfo.hh
XrdNetAddr.hh
XrdNetPMark.hh
XrdSecEntity.hh
XrdHttpExtReq
Definition
XrdHttpExtHandler.hh:47
XrdNetAddr
Definition
XrdNetAddr.hh:42
XrdNetPMark
Definition
XrdNetPMark.hh:39
XrdSecEntity
Definition
XrdSecEntity.hh:65
XrdTpc::PMarkManager::SocketInfo
Definition
XrdTpcPMarkManager.hh:58
XrdTpc::PMarkManager::SocketInfo::client
XrdSecEntity client
Definition
XrdTpcPMarkManager.hh:62
XrdTpc::PMarkManager::SocketInfo::netAddr
XrdNetAddr netAddr
Definition
XrdTpcPMarkManager.hh:61
XrdTpc::PMarkManager::SocketInfo::SocketInfo
SocketInfo(int fd, const struct sockaddr *sockP)
Definition
XrdTpcPMarkManager.cc:29
XrdTpc::PMarkManager
Definition
XrdTpcPMarkManager.hh:48
XrdTpc::PMarkManager::endPmark
void endPmark(int fd)
Definition
XrdTpcPMarkManager.cc:98
XrdTpc::PMarkManager::startTransfer
void startTransfer()
Definition
XrdTpcPMarkManager.cc:61
XrdTpc::PMarkManager::isEnabled
bool isEnabled() const
Definition
XrdTpcPMarkManager.cc:57
XrdTpc::PMarkManager::~PMarkManager
virtual ~PMarkManager()=default
XrdTpc::PMarkManager::connect
bool connect(int fd, const struct sockaddr *sockP, size_t sockPLen, uint32_t timeout_sec, std::stringstream &err)
Definition
XrdTpcPMarkManager.cc:43
XrdTpc::PMarkManager::beginPMarks
void beginPMarks()
Definition
XrdTpcPMarkManager.cc:65
XrdTpc::PMarkManager::PMarkManager
PMarkManager(XrdHttpExtReq &req)
Definition
XrdTpcPMarkManager.cc:34
XrdTpc
Definition
XrdTpcPMarkManager.cc:28
XrdTpc
XrdTpcPMarkManager.hh
Generated by
1.10.0