summaryrefslogtreecommitdiff
path: root/ACE/ace/QoS/QoS_Manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/QoS/QoS_Manager.h')
-rw-r--r--ACE/ace/QoS/QoS_Manager.h74
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 */