summaryrefslogtreecommitdiff
path: root/ace/CLASSIX/CLASSIX_Group.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/CLASSIX/CLASSIX_Group.cpp')
-rw-r--r--ace/CLASSIX/CLASSIX_Group.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/ace/CLASSIX/CLASSIX_Group.cpp b/ace/CLASSIX/CLASSIX_Group.cpp
new file mode 100644
index 00000000000..cb0064d3298
--- /dev/null
+++ b/ace/CLASSIX/CLASSIX_Group.cpp
@@ -0,0 +1,89 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// CLASSIX_Group.cpp
+//
+// = AUTHOR(S)
+// Nokia Telecommunications
+//
+// ============================================================================
+
+#include "ace/CLASSIX/CLASSIX_Group.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/CLASSIX/CLASSIX_Group.i"
+#endif /* __ACE_INLINE__ */
+/* ------------------------------------------------------------------------- */
+
+void
+ACE_CLASSIX_Group::init_(void)
+{
+ this->clear_config_();
+ this->addr_.group_.ui.uiHead = this->addr_.group_.ui.uiTail = 0;
+ this->addr_.group_.key.keyHead = this->addr_.group_.key.keyTail = 0;
+}
+
+void
+ACE_CLASSIX_Group::set_addr(void* theSrc, int theLen)
+{
+ if (theLen > this->get_size())
+ return;
+
+ ACE_OS::memcpy ((void *) &this->addr_,
+ (void *) theSrc, theLen);
+}
+
+void
+ACE_CLASSIX_Group::set_addr(const KnCap& thePeer)
+{
+ this->addr_.group_ = thePeer;
+ this->set_config_();
+}
+
+
+int
+ACE_CLASSIX_Group::insert(const ACE_CLASSIX_Port* thePort)
+{
+ if (this->is_configured())
+ return ::grpPortInsert((KnCap*) &this->get_cap(),
+ (KnUniqueId*) &thePort->get_id());
+ else
+ return K_EINVAL;
+}
+
+int
+ACE_CLASSIX_Group::remove(const ACE_CLASSIX_Port* thePort)
+{
+ if (this->is_configured())
+ return ::grpPortRemove((KnCap*) &this->get_cap(),
+ (KnUniqueId*) &thePort->get_id());
+ else
+ return K_EINVAL;
+}
+
+void
+ACE_CLASSIX_Group::dump(void) const
+{
+ ACE_DEBUG ((LM_DEBUG, "ACE_CLASSIX_Group...\n"));
+ char s[200];
+ if (!this->is_configured())
+ ACE_OS::sprintf(s, "Group has not been setup\n");
+ else
+ {
+ const KnCap &group = this->get_cap();
+ ACE_OS::sprintf (s, "id head = %d(%x), id tail = %d(%x)\n"
+ "key head = %d(%x) key tail = %d(%x)\n",
+ group.ui.uiHead, group.ui.uiHead,
+ group.ui.uiTail, group.ui.uiTail,
+ group.key.keyHead, group.key.keyHead,
+ group.key.keyTail, group.key.keyTail);
+ }
+ ACE_DEBUG ((LM_DEBUG, "\n%s", s));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+}