xrootd
Public Member Functions | Private Types | Private Attributes | List of all members
XrdCl::PollerLibEvent Class Reference

A poller implementation using libEvent underneath. More...

#include <XrdClPollerLibEvent.hh>

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

Public Member Functions

 PollerLibEvent ()
 Constructor. More...
 
virtual bool Initialize ()
 Initialize the poller. More...
 
virtual bool Finalize ()
 Finalize the poller. More...
 
virtual bool Start ()
 Start polling. More...
 
virtual bool Stop ()
 Stop polling. More...
 
virtual bool AddSocket (Socket *socket, SocketHandler *handler)
 
virtual bool RemoveSocket (Socket *socket)
 Remove the socket. More...
 
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. More...
 
virtual bool IsRunning () const
 Is the event loop running? More...
 
int RunEventLoop ()
 Run the libevent event loop. More...
 
- Public Member Functions inherited from XrdCl::Poller
virtual ~Poller ()
 Destructor. More...
 

Private Types

typedef std::map< const Socket
*, void * > 
SocketMap
 

Private Attributes

SocketMap pSocketMap
 
XrdSysMutex pMutex
 
event_base * pEventBase
 
pthread_t pPollerThread
 
bool pPollerThreadRunning
 

Detailed Description

A poller implementation using libEvent underneath.

Member Typedef Documentation

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

Constructor & Destructor Documentation

XrdCl::PollerLibEvent::PollerLibEvent ( )
inline

Constructor.

Member Function Documentation

bool XrdCl::PollerLibEvent::AddSocket ( Socket socket,
SocketHandler handler 
)
virtual
bool XrdCl::PollerLibEvent::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.

References XrdCl::Log::Dump(), XrdCl::Log::Error(), XrdCl::Socket::GetFD(), XrdCl::DefaultEnv::GetLog(), XrdCl::Socket::GetName(), pEventBase, pMutex, XrdCl::PollerMsg, pSocketMap, ReadEventCallback(), and XrdCl::Log::Warning().

bool XrdCl::PollerLibEvent::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.

References XrdCl::Log::Dump(), XrdCl::Log::Error(), XrdCl::Socket::GetFD(), XrdCl::DefaultEnv::GetLog(), XrdCl::Socket::GetName(), pEventBase, pMutex, XrdCl::PollerMsg, pSocketMap, XrdCl::Log::Warning(), and WriteEventCallback().

bool XrdCl::PollerLibEvent::Finalize ( )
virtual

Finalize the poller.

Implements XrdCl::Poller.

References IsRunning(), pEventBase, pSocketMap, and Stop().

bool XrdCl::PollerLibEvent::Initialize ( )
virtual
bool XrdCl::PollerLibEvent::IsRegistered ( Socket socket)
virtual

Check whether the socket is registered with the poller.

Implements XrdCl::Poller.

References pMutex, and pSocketMap.

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

Is the event loop running?

Implements XrdCl::Poller.

References pPollerThreadRunning.

Referenced by Finalize().

bool XrdCl::PollerLibEvent::RemoveSocket ( Socket socket)
virtual
int XrdCl::PollerLibEvent::RunEventLoop ( )
bool XrdCl::PollerLibEvent::Start ( )
virtual
bool XrdCl::PollerLibEvent::Stop ( )
virtual

Member Data Documentation

event_base* XrdCl::PollerLibEvent::pEventBase
private
XrdSysMutex XrdCl::PollerLibEvent::pMutex
private
pthread_t XrdCl::PollerLibEvent::pPollerThread
private

Referenced by Start(), and Stop().

bool XrdCl::PollerLibEvent::pPollerThreadRunning
private

Referenced by IsRunning(), Start(), and Stop().

SocketMap XrdCl::PollerLibEvent::pSocketMap
private

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