summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-07-30 21:51:49 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-07-30 21:51:49 +0000
commite50fd17ae67174cf831fd1ee49fbcae25df57c5c (patch)
tree10e034159f9811a586f9943e7fafa6d290e648e3
parente505507d9014a763cbf25c2f484bcf280d84c946 (diff)
downloadATCD-e50fd17ae67174cf831fd1ee49fbcae25df57c5c.tar.gz
ChangeLogTag:Mon Jul 30 14:41:43 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/tao/LF_Follower_Auto_Adder.cpp15
-rw-r--r--TAO/tao/LF_Follower_Auto_Adder.h60
-rw-r--r--TAO/tao/LF_Follower_Auto_Adder.inl29
-rw-r--r--TAO/tao/Makefile.am27
-rw-r--r--TAO/tao/Makefile.bor1
-rw-r--r--TAO/tao/TAO.dsp12
-rw-r--r--TAO/tao/TAO_Static.dsp12
7 files changed, 156 insertions, 0 deletions
diff --git a/TAO/tao/LF_Follower_Auto_Adder.cpp b/TAO/tao/LF_Follower_Auto_Adder.cpp
new file mode 100644
index 00000000000..906ae29132e
--- /dev/null
+++ b/TAO/tao/LF_Follower_Auto_Adder.cpp
@@ -0,0 +1,15 @@
+// -*- C++ -*-
+// $Id$
+
+#include "tao/LF_Follower_Auto_Adder.h"
+
+#if !defined (__ACE_INLINE__)
+# include "tao/LF_Follower_Auto_Adder.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(tao, Follower_Auto_Adder, "$Id$")
+
+TAO_LF_Follower_Auto_Adder::~TAO_LF_Follower_Auto_Adder (void)
+{
+ this->leader_follower_.remove_follower (this->follower_);
+}
diff --git a/TAO/tao/LF_Follower_Auto_Adder.h b/TAO/tao/LF_Follower_Auto_Adder.h
new file mode 100644
index 00000000000..9e336614bd0
--- /dev/null
+++ b/TAO/tao/LF_Follower_Auto_Adder.h
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Follower_Auto_Adder.h
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu>
+ */
+//=============================================================================
+
+#ifndef TAO_LF_FOLLOWER_AUTO_ADDER_H
+#define TAO_LF_FOLLOWER_AUTO_ADDER_H
+#include "ace/pre.h"
+
+#include "tao/orbconf.h"
+#include "tao/Leader_Follower.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class TAO_Follower;
+
+/**
+ * @brief Implement an auto_adder-like class for the TAO_Followers
+ * allocated via a TAO_Leader_Follower set.
+ *
+ * The Leader/Follower set is a factory for TAO_Follower objects
+ */
+class TAO_Export TAO_LF_Follower_Auto_Adder
+{
+public:
+ /// Constructor
+ TAO_LF_Follower_Auto_Adder (TAO_Leader_Follower &,
+ TAO_Follower *follower);
+
+ /// Destructor
+ ~TAO_LF_Follower_Auto_Adder (void);
+
+ /// Implement the smart pointer methods
+ TAO_Follower *get (void);
+ TAO_Follower *operator->(void);
+ operator TAO_Follower *(void);
+
+private:
+ /// Keep a reference to the leader follower
+ TAO_Leader_Follower &leader_follower_;
+
+ /// The follower
+ TAO_Follower *follower_;
+};
+
+#if defined (__ACE_INLINE__)
+# include "tao/LF_Follower_Auto_Adder.inl"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/post.h"
+#endif /* TAO_LF_FOLLOWER_AUTO_ADDER_H */
diff --git a/TAO/tao/LF_Follower_Auto_Adder.inl b/TAO/tao/LF_Follower_Auto_Adder.inl
new file mode 100644
index 00000000000..900b10f9658
--- /dev/null
+++ b/TAO/tao/LF_Follower_Auto_Adder.inl
@@ -0,0 +1,29 @@
+// $Id$
+
+ACE_INLINE
+TAO_LF_Follower_Auto_Adder::
+ TAO_LF_Follower_Auto_Adder (TAO_Leader_Follower &lf,
+ TAO_Follower *follower)
+ : leader_follower_ (lf)
+ , follower_ (follower)
+{
+ (void) this->leader_follower_.add_follower (this->follower_);
+}
+
+ACE_INLINE TAO_Follower *
+TAO_LF_Follower_Auto_Adder::get (void)
+{
+ return this->follower_;
+}
+
+ACE_INLINE TAO_Follower *
+TAO_LF_Follower_Auto_Adder::operator-> (void)
+{
+ return this->follower_;
+}
+
+ACE_INLINE
+TAO_LF_Follower_Auto_Adder::operator TAO_Follower * (void)
+{
+ return this->follower_;
+}
diff --git a/TAO/tao/Makefile.am b/TAO/tao/Makefile.am
index 1371deb717c..a67181a8aaf 100644
--- a/TAO/tao/Makefile.am
+++ b/TAO/tao/Makefile.am
@@ -131,7 +131,16 @@ ORB_CORE_FILES = \
StringSeqC.cpp \
ORB_Core.cpp \
ORB_Table.cpp \
+ LF_Event.cpp \
+ LF_Event_Binder.cpp \
+ LF_Event_Loop_Thread_Helper.cpp \
+ LF_Strategy.cpp \
+ LF_Strategy_Complete.cpp \
Leader_Follower.cpp \
+ Leader_Follower_Flushing_Strategy.cpp \
+ Follower.cpp \
+ Follower_Auto_Ptr.cpp \
+ LF_Follower_Auto_Adder.cpp \
Reactor_Registry.cpp \
Single_Reactor.cpp \
Reactor_Per_Priority.cpp \
@@ -295,7 +304,16 @@ HEADER_FILES = \
InterceptorS.h \
Invocation.h \
Key_Adapters.h \
+ Follower.h \
+ Follower_Auto_Ptr.h \
+ LF_Follower_Auto_Adder.h \
Leader_Follower.h \
+ Leader_Follower_Flushing_Strategy.h \
+ LF_Event.h \
+ LF_Event_Binder.h \
+ LF_Event_Loop_Thread_Helper.h \
+ LF_Strategy.h \
+ LF_Strategy_Complete.h \
MProfile.h \
Managed_Types.h \
Marshal.h \
@@ -430,7 +448,16 @@ INLINE_FILES = \
InterceptorC.i \
Invocation.i \
Key_Adapters.i \
+ Follower.inl \
+ Follower_Auto_Ptr.inl \
+ LF_Follower_Auto_Adder.inl \
Leader_Follower.i \
+ Leader_Follower_Flushing_Strategy.inl \
+ LF_Event.inl \
+ LF_Event_Binder.inl \
+ LF_Event_Loop_Thread_Helper.inl \
+ LF_Strategy.inl \
+ LF_Strategy_Complete.inl \
MProfile.i \
Managed_Types.i \
Marshal.i \
diff --git a/TAO/tao/Makefile.bor b/TAO/tao/Makefile.bor
index f82c3c3d648..cec043c18a3 100644
--- a/TAO/tao/Makefile.bor
+++ b/TAO/tao/Makefile.bor
@@ -79,6 +79,7 @@ OBJFILES = \
$(OBJDIR)\Flushing_Strategy.obj \
$(OBJDIR)\Follower.obj \
$(OBJDIR)\Follower_Auto_Ptr.obj \
+ $(OBJDIR)\LF_Follower_Auto_Adder.obj \
$(OBJDIR)\GIOP_Message_Base.obj \
$(OBJDIR)\GIOP_Message_Lite.obj \
$(OBJDIR)\GIOP_Message_Generator_Parser.obj \
diff --git a/TAO/tao/TAO.dsp b/TAO/tao/TAO.dsp
index 84610b60e0d..e182a8d33f2 100644
--- a/TAO/tao/TAO.dsp
+++ b/TAO/tao/TAO.dsp
@@ -391,6 +391,10 @@ SOURCE=.\Follower.cpp
# End Source File
# Begin Source File
+SOURCE=.\Follower_Auto_Adder.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\Follower_Auto_Ptr.cpp
# End Source File
# Begin Source File
@@ -1151,6 +1155,14 @@ SOURCE=.\Follower.inl
# End Source File
# Begin Source File
+SOURCE=.\Follower_Auto_Adder.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Follower_Auto_Adder.inl
+# End Source File
+# Begin Source File
+
SOURCE=.\Follower_Auto_Ptr.h
# End Source File
# Begin Source File
diff --git a/TAO/tao/TAO_Static.dsp b/TAO/tao/TAO_Static.dsp
index b800f50da05..f75fb5f5f56 100644
--- a/TAO/tao/TAO_Static.dsp
+++ b/TAO/tao/TAO_Static.dsp
@@ -323,6 +323,10 @@ SOURCE=.\Flushing_Strategy.h
# End Source File
# Begin Source File
+SOURCE=.\Follower_Auto_Adder.h
+# End Source File
+# Begin Source File
+
SOURCE=.\giop.h
# End Source File
# Begin Source File
@@ -1047,6 +1051,10 @@ SOURCE=.\FILE_Parser.i
# End Source File
# Begin Source File
+SOURCE=.\Follower_Auto_Adder.inl
+# End Source File
+# Begin Source File
+
SOURCE=.\giop.i
# End Source File
# Begin Source File
@@ -1699,6 +1707,10 @@ SOURCE=.\Flushing_Strategy.cpp
# End Source File
# Begin Source File
+SOURCE=.\Follower_Auto_Adder.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\GIOP_Message_Base.cpp
# End Source File
# Begin Source File