summaryrefslogtreecommitdiff
path: root/TAO/tao/Condition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Condition.cpp')
-rw-r--r--TAO/tao/Condition.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/TAO/tao/Condition.cpp b/TAO/tao/Condition.cpp
new file mode 100644
index 00000000000..06e17912045
--- /dev/null
+++ b/TAO/tao/Condition.cpp
@@ -0,0 +1,62 @@
+// $Id$
+
+#ifndef TAO_CONDITION_CPP
+#define TAO_CONDITION_CPP
+#include "tao/Condition.h"
+#include "ace/Log_Msg.h"
+
+#if !defined (__ACE_INLINE__)
+# include "tao/Condition.inl"
+#endif /* __ACE_INLINE__ */
+
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <class MUTEX>
+TAO_Condition<MUTEX>::TAO_Condition (MUTEX &m)
+
+ : mutex_ (&m),
+ delete_lock_ (0),
+ cond_ (0)
+{
+ // @@todo: Need to add the allocatore here..
+ ACE_NEW (this->cond_,
+ TAO_SYNCH_CONDITION (*this->mutex_));
+}
+
+template <class MUTEX>
+TAO_Condition<MUTEX>::TAO_Condition (void)
+ : mutex_ (0),
+ delete_lock_ (0),
+ cond_ (0)
+
+{
+ // @@todo: Need to add the allocatore here..
+
+ ACE_NEW (this->mutex_,
+ MUTEX);
+
+ this->delete_lock_ = 1;
+
+ ACE_NEW (this->cond_,
+ TAO_SYNCH_CONDITION (*this->mutex_));
+}
+
+
+template <class MUTEX>
+TAO_Condition<MUTEX>::~TAO_Condition (void)
+{
+ if (this->remove () == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("TAO_Condition::~TAO_Condition")));
+
+ delete this->cond_;
+
+ if (this->delete_lock_)
+ delete this->mutex_;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* TAO_CONDITION_CPP */