3 //=============================================================================
7 * @author Vishal Kachroo
9 //=============================================================================
12 #ifndef ACE_QOS_MANAGER_H
13 #define ACE_QOS_MANAGER_H
14 #include /**/ "ace/pre.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 #include "ace/IPC_SAP.h"
23 #include "ace/Containers_T.h"
24 #include "ACE_QoS_Export.h"
25 #include "QoS_Session.h"
28 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
31 * @class ACE_QoS_Manager
33 * @brief This class manages the QoS sessions associated with ACE_SOCK.
35 * This class provides functions to manage the QoS
36 * associated with a socket. The idea is to keep the management of
37 * QoS for a socket separate from the socket itself. Currently, the
38 * manager is used to manage the QoS session set. It will handle more
39 * responsibilities in the future.
41 class ACE_QoS_Export ACE_QoS_Manager
44 /// Default constructor.
47 /// Default destructor.
51 * Join the given QoS session. A socket can join multiple QoS
52 * sessions. This call adds the given QoS session to the list of
53 * QoS sessions that the socket has already joined.
55 int join_qos_session (ACE_QoS_Session
*qos_session
);
57 typedef ACE_Unbounded_Set
<ACE_QoS_Session
*> ACE_QOS_SESSION_SET
;
59 /// Get the QoS session set.
60 ACE_QOS_SESSION_SET
qos_session_set ();
63 /// Set of QoS sessions that this socket has joined.
64 ACE_QOS_SESSION_SET qos_session_set_
;
67 ACE_END_VERSIONED_NAMESPACE_DECL
69 #include /**/ "ace/post.h"
70 #endif /* ACE_QOS_MANAGER_H */