xrootd
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
XrdCl::PollerBuiltIn Class Reference

A poller implementation using the build-in XRootD poller. More...

#include <XrdClPollerBuiltIn.hh>

Inheritance diagram for XrdCl::PollerBuiltIn:
Inheritance graph
[legend]
Collaboration diagram for XrdCl::PollerBuiltIn:
Collaboration graph
[legend]

Public Member Functions

 PollerBuiltIn ()
 Constructor.
 
 ~PollerBuiltIn ()
 
virtual bool Initialize ()
 Initialize the poller.
 
virtual bool Finalize ()
 Finalize the poller.
 
virtual bool Start ()
 Start polling.
 
virtual bool Stop ()
 Stop polling.
 
virtual bool AddSocket (Socket *socket, SocketHandler *handler)
 
virtual bool RemoveSocket (Socket *socket)
 Remove the socket.
 
virtual bool EnableReadNotification (Socket *socket, bool notify, uint16_t timeout=60)
 
virtual bool EnableWriteNotification (Socket *socket, bool notify, uint16_t timeout=60)
 
virtual bool IsRegistered (Socket *socket)
 Check whether the socket is registered with the poller.
 
virtual bool IsRunning () const
 Is the event loop running?
 
- Public Member Functions inherited from XrdCl::Poller
virtual ~Poller ()
 Destructor.
 

Private Types

typedef std::map< const AnyObject *, std::pair< XrdSys::IOEvents::Poller *, size_t > > PollerMap
 
typedef std::map< Socket *, void * > SocketMap
 
typedef std::vector< XrdSys::IOEvents::Poller * > PollerPool
 

Private Member Functions

XrdSys::IOEvents::PollerGetNextPoller ()
 Goes over poller threads in round robin fashion.
 
XrdSys::IOEvents::PollerRegisterAndGetPoller (const Socket *socket)
 Registers given socket as a poller user and returns the poller object.
 
void UnregisterFromPoller (const Socket *socket)
 Unregisters given socket from poller object.
 
XrdSys::IOEvents::PollerGetPoller (const Socket *socket)
 Returns the poller object associated with the given socket.
 

Static Private Member Functions

static int GetNbPollerInit ()
 Gets the initial value for 'pNbPoller'.
 

Private Attributes

SocketMap pSocketMap
 
PollerMap pPollerMap
 
PollerPool pPollerPool
 
PollerPool::iterator pNext
 
const int pNbPoller
 
XrdSysMutex pMutex
 

Detailed Description

A poller implementation using the build-in XRootD poller.

Member Typedef Documentation

◆ PollerMap

typedef std::map<const AnyObject *, std::pair<XrdSys::IOEvents::Poller *, size_t> > XrdCl::PollerBuiltIn::PollerMap
private

◆ PollerPool

◆ SocketMap

typedef std::map<Socket *, void *> XrdCl::PollerBuiltIn::SocketMap
private

Constructor & Destructor Documentation

◆ PollerBuiltIn()

XrdCl::PollerBuiltIn::PollerBuiltIn ( )
inline

Constructor.

◆ ~PollerBuiltIn()

XrdCl::PollerBuiltIn::~PollerBuiltIn ( )
inline

Member Function Documentation

◆ AddSocket()

virtual bool XrdCl::PollerBuiltIn::AddSocket ( Socket socket,
SocketHandler handler 
)
virtual

Add socket to the polling loop

Parameters
socketthe socket
handlerobject handling the events

Implements XrdCl::Poller.

◆ EnableReadNotification()

virtual bool XrdCl::PollerBuiltIn::EnableReadNotification ( Socket socket,
bool  notify,
uint16_t  timeout = 60 
)
virtual

Notify the handler about read events

Parameters
socketthe socket
notifyspecify if the handler should be notified
timeoutif no read event occurred after this time a timeout event will be generated

Implements XrdCl::Poller.

◆ EnableWriteNotification()

virtual bool XrdCl::PollerBuiltIn::EnableWriteNotification ( Socket socket,
bool  notify,
uint16_t  timeout = 60 
)
virtual

Notify the handler about write events

Parameters
socketthe socket
notifyspecify if the handler should be notified
timeoutif no write event occurred after this time a timeout event will be generated

Implements XrdCl::Poller.

◆ Finalize()

virtual bool XrdCl::PollerBuiltIn::Finalize ( )
virtual

Finalize the poller.

Implements XrdCl::Poller.

◆ GetNbPollerInit()

static int XrdCl::PollerBuiltIn::GetNbPollerInit ( )
staticprivate

Gets the initial value for 'pNbPoller'.

◆ GetNextPoller()

XrdSys::IOEvents::Poller * XrdCl::PollerBuiltIn::GetNextPoller ( )
private

Goes over poller threads in round robin fashion.

◆ GetPoller()

XrdSys::IOEvents::Poller * XrdCl::PollerBuiltIn::GetPoller ( const Socket socket)
private

Returns the poller object associated with the given socket.

◆ Initialize()

virtual bool XrdCl::PollerBuiltIn::Initialize ( )
virtual

Initialize the poller.

Implements XrdCl::Poller.

◆ IsRegistered()

virtual bool XrdCl::PollerBuiltIn::IsRegistered ( Socket socket)
virtual

Check whether the socket is registered with the poller.

Implements XrdCl::Poller.

◆ IsRunning()

virtual bool XrdCl::PollerBuiltIn::IsRunning ( ) const
inlinevirtual

Is the event loop running?

Implements XrdCl::Poller.

References pPollerPool.

◆ RegisterAndGetPoller()

XrdSys::IOEvents::Poller * XrdCl::PollerBuiltIn::RegisterAndGetPoller ( const Socket socket)
private

Registers given socket as a poller user and returns the poller object.

◆ RemoveSocket()

virtual bool XrdCl::PollerBuiltIn::RemoveSocket ( Socket socket)
virtual

Remove the socket.

Implements XrdCl::Poller.

◆ Start()

virtual bool XrdCl::PollerBuiltIn::Start ( )
virtual

Start polling.

Implements XrdCl::Poller.

◆ Stop()

virtual bool XrdCl::PollerBuiltIn::Stop ( )
virtual

Stop polling.

Implements XrdCl::Poller.

◆ UnregisterFromPoller()

void XrdCl::PollerBuiltIn::UnregisterFromPoller ( const Socket socket)
private

Unregisters given socket from poller object.

Member Data Documentation

◆ pMutex

XrdSysMutex XrdCl::PollerBuiltIn::pMutex
private

◆ pNbPoller

const int XrdCl::PollerBuiltIn::pNbPoller
private

◆ pNext

PollerPool::iterator XrdCl::PollerBuiltIn::pNext
private

◆ pPollerMap

PollerMap XrdCl::PollerBuiltIn::pPollerMap
private

◆ pPollerPool

PollerPool XrdCl::PollerBuiltIn::pPollerPool
private

Referenced by IsRunning().

◆ pSocketMap

SocketMap XrdCl::PollerBuiltIn::pSocketMap
private

The documentation for this class was generated from the following file: