summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp b/TAO/orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp
new file mode 100644
index 00000000000..a41c7eabdb0
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/ESF/ESF_Immediate_Changes.cpp
@@ -0,0 +1,46 @@
+// $Id$
+
+#ifndef TAO_ESF_IMMEDIATE_CHANGES_CPP
+#define TAO_ESF_IMMEDIATE_CHANGES_CPP
+
+#include "ESF_Immediate_Changes.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "ESF_Proxy_Collection.i"
+#endif /* __ACE_INLINE__ */
+
+#include "ESF_Worker.h"
+
+ACE_RCSID(ESF, ESF_Immediate_Changes, "$Id$")
+
+// ****************************************************************
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+TAO_ESF_Immediate_Changes<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ TAO_ESF_Immediate_Changes (void)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK>
+TAO_ESF_Immediate_Changes<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ TAO_ESF_Immediate_Changes (const COLLECTION &collection)
+ : collection_ (collection)
+{
+}
+
+template<class PROXY, class COLLECTION, class ITERATOR, class ACE_LOCK> void
+TAO_ESF_Immediate_Changes<PROXY,COLLECTION,ITERATOR,ACE_LOCK>::
+ for_each (TAO_ESF_Worker<PROXY> *worker,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
+
+ ITERATOR end = this->collection_.end ();
+ for (ITERATOR i = this->collection_.begin (); i != end; ++i)
+ {
+ worker->work ((*i), ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+}
+
+#endif /* TAO_ESF_IMMEDIATE_CHANGES_CPP */