diff options
Diffstat (limited to 'ACE/ace/QoS/QoS_Manager.h')
-rw-r--r-- | ACE/ace/QoS/QoS_Manager.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/ACE/ace/QoS/QoS_Manager.h b/ACE/ace/QoS/QoS_Manager.h new file mode 100644 index 00000000000..8a0b52c9943 --- /dev/null +++ b/ACE/ace/QoS/QoS_Manager.h @@ -0,0 +1,74 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file QoS_Manager.h + * + * $Id$ + * + * @author Vishal Kachroo + */ +//============================================================================= + + +#ifndef ACE_QOS_MANAGER_H +#define ACE_QOS_MANAGER_H +#include /**/ "ace/pre.h" + +#include "ace/Addr.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/IPC_SAP.h" +#include "ace/Containers_T.h" +#include "ACE_QoS_Export.h" +#include "QoS_Session.h" + + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class ACE_QoS_Manager + * + * @brief This class manages the QoS sessions associated with ACE_SOCK. + * + * This class provides functions to manage the QoS + * associated with a socket. The idea is to keep the management of + * QoS for a socket separate from the socket itself. Currently, the + * manager is used to manage the QoS session set. It will handle more + * responsibilities in the future. + */ +class ACE_QoS_Export ACE_QoS_Manager +{ + +public: + /// Default constructor. + ACE_QoS_Manager (void); + + /// Default destructor. + ~ACE_QoS_Manager (void); + + /** + * Join the given QoS session. A socket can join multiple QoS + * sessions. This call adds the given QoS session to the list of + * QoS sessions that the socket has already joined. + */ + int join_qos_session (ACE_QoS_Session *qos_session); + + typedef ACE_Unbounded_Set <ACE_QoS_Session *> ACE_QOS_SESSION_SET; + + /// Get the QoS session set. + ACE_QOS_SESSION_SET qos_session_set (void); + +private: + + /// Set of QoS sessions that this socket has joined. + ACE_QOS_SESSION_SET qos_session_set_; +}; + +ACE_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* ACE_QOS_MANAGER_H */ |