diff options
Diffstat (limited to 'examples/Smart_Pointers')
34 files changed, 0 insertions, 2118 deletions
diff --git a/examples/Smart_Pointers/Gadget.cpp b/examples/Smart_Pointers/Gadget.cpp deleted file mode 100644 index 180fe0107cc..00000000000 --- a/examples/Smart_Pointers/Gadget.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Gadget.h" - -Gadget::~Gadget (void) -{ -} diff --git a/examples/Smart_Pointers/Gadget.h b/examples/Smart_Pointers/Gadget.h deleted file mode 100644 index 65b1fb0a34e..00000000000 --- a/examples/Smart_Pointers/Gadget.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef GADGET_H -#define GADGET_H - -#include "ace/Bound_Ptr.h" -#include "Gadget_Part.h" - -/** - * @class Gadget - * - * @brief An interface for some high-level application object. - */ -class Gadget -{ -public: - /// Destructor. - virtual ~Gadget (void); - - /// Add a new part to the gadget. The gadget automatically takes shared - /// responsibility for the ownership of the part object since we are passing - /// a Gadget_Part_var. - virtual void add_part (Gadget_Part_var part) = 0; - - /// Remove a random part from the gadget. Responsibility for ownership of the - /// part is automatically returned to the caller since we are returning a - /// Gadget_Part_var. - virtual Gadget_Part_var remove_part (void) = 0; - - /// Ask the gadget to print information about the parts that it contains. - virtual void list_parts (void) = 0; -}; - -// The Gadget_var smart pointer has shared (reference counted) ownership -// semantics. -typedef ACE_Strong_Bound_Ptr<Gadget, ACE_SYNCH_MUTEX> Gadget_var; - -// The Gadget_ptr smart pointer has no ownership semantics, but supports -// conversion back into a Gadget_var. -typedef ACE_Weak_Bound_Ptr<Gadget, ACE_SYNCH_MUTEX> Gadget_ptr; - -#endif /* GADGET_H */ diff --git a/examples/Smart_Pointers/Gadget_Factory.cpp b/examples/Smart_Pointers/Gadget_Factory.cpp deleted file mode 100644 index 054237169f2..00000000000 --- a/examples/Smart_Pointers/Gadget_Factory.cpp +++ /dev/null @@ -1,18 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Factory.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Gadget_Factory.h" -#include "Gadget_Impl.h" - -Gadget_var Gadget_Factory::create_gadget (void) -{ - return Gadget_var (new Gadget_Impl); -} diff --git a/examples/Smart_Pointers/Gadget_Factory.h b/examples/Smart_Pointers/Gadget_Factory.h deleted file mode 100644 index dd3c17e7975..00000000000 --- a/examples/Smart_Pointers/Gadget_Factory.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Factory.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef GADGET_FACTORY_H -#define GADGET_FACTORY_H - -#include "Gadget.h" - -/** - * @class Gadget_Factory - * - * @brief Used to create Gadget instances. - */ -class Gadget_Factory -{ -public: - /// Create an instance of a gadget. Ownership of the object is automatically - /// transferred to the caller since we return a Gadget_var. This also means - /// that the object will be deleted automatically if the caller "forgets" to - /// collect the return value. - static Gadget_var create_gadget (void); -}; - -#endif /* GADGET_FACTORY_H */ diff --git a/examples/Smart_Pointers/Gadget_Impl.cpp b/examples/Smart_Pointers/Gadget_Impl.cpp deleted file mode 100644 index 03dd94f8838..00000000000 --- a/examples/Smart_Pointers/Gadget_Impl.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Impl.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Gadget_Impl.h" -#include "ace/Log_Msg.h" - -Gadget_Impl::Gadget_Impl (void) -{ - ACE_DEBUG ((LM_DEBUG, "Gadget_Impl constructor\n")); -} - -Gadget_Impl::~Gadget_Impl (void) -{ - ACE_DEBUG ((LM_DEBUG, "Gadget_Impl destructor\n")); -} - -void Gadget_Impl::add_part (Gadget_Part_var part) -{ - parts_.enqueue_tail (part); -} - -Gadget_Part_var Gadget_Impl::remove_part (void) -{ - Gadget_Part_var removed_part; - if (parts_.dequeue_head (removed_part) == -1) - return Gadget_Part_var(); - return removed_part; -} - -void Gadget_Impl::list_parts (void) -{ - ACE_Unbounded_Queue_Iterator<Gadget_Part_var> iter (parts_); - Gadget_Part_var *current_part; - while (iter.next (current_part)) - { - (*current_part)->print_info (); - iter.advance (); - } -} diff --git a/examples/Smart_Pointers/Gadget_Impl.h b/examples/Smart_Pointers/Gadget_Impl.h deleted file mode 100644 index ed4faf27ca4..00000000000 --- a/examples/Smart_Pointers/Gadget_Impl.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Impl.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef GADGET_IMPL_H -#define GADGET_IMPL_H - -#include "ace/Unbounded_Queue.h" -#include "Gadget.h" -#include "Gadget_Part.h" - -/** - * @class Gadget_Impl - * - * @brief An implementation of the Gadget interface. - */ -class Gadget_Impl : public Gadget -{ -public: - /// Constructor. - Gadget_Impl (void); - - /// Destructor. - virtual ~Gadget_Impl (void); - - /// Add a new part to the gadget. The gadget takes ownership of the part - /// object. - virtual void add_part (Gadget_Part_var part); - - /// Remove a random part from the gadget. Ownership of the part is returned - /// to the caller. - virtual Gadget_Part_var remove_part (void); - - /// Ask the gadget to print information about the parts that it contains. - virtual void list_parts (void); - -private: - /// The parts which make up this gadget. The set actually contains instances - /// of Gadget_Part_var to automatically manage the lifetimes of the - /// constituent parts. - ACE_Unbounded_Queue<Gadget_Part_var> parts_; -}; - -#endif /* GADGET_IMPL_H */ diff --git a/examples/Smart_Pointers/Gadget_Part.cpp b/examples/Smart_Pointers/Gadget_Part.cpp deleted file mode 100644 index 9f08f2a61e7..00000000000 --- a/examples/Smart_Pointers/Gadget_Part.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Part.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Gadget_Part.h" - -Gadget_Part::~Gadget_Part (void) -{ -} diff --git a/examples/Smart_Pointers/Gadget_Part.h b/examples/Smart_Pointers/Gadget_Part.h deleted file mode 100644 index bc78c49666f..00000000000 --- a/examples/Smart_Pointers/Gadget_Part.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Part.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef GADGET_PART_H -#define GADGET_PART_H - -#include "ace/Bound_Ptr.h" - -/** - * @class Gadget_Part - * - * @brief An interface for some high-level application object. - */ -class Gadget_Part -{ -public: - /// Destructor. - virtual ~Gadget_Part (void); - - /// Ask the part to print information about itself. - virtual void print_info (void) = 0; - - /// Ask the part to remove itself from the gadget that contains it. - virtual void remove_from_owner (void) = 0; -}; - -// The Gadget_Part_var smart pointer has shared (reference counted) ownership -// semantics. -typedef ACE_Strong_Bound_Ptr<Gadget_Part, ACE_SYNCH_MUTEX> Gadget_Part_var; - -// The Gadget_Part_ptr smart pointer has no ownership semantics, but supports -// conversion back into a Gadget_var. -typedef ACE_Weak_Bound_Ptr<Gadget_Part, ACE_SYNCH_MUTEX> Gadget_Part_ptr; - -#endif /* GADGET_PART_H */ diff --git a/examples/Smart_Pointers/Gadget_Part_Factory.cpp b/examples/Smart_Pointers/Gadget_Part_Factory.cpp deleted file mode 100644 index caf546fffce..00000000000 --- a/examples/Smart_Pointers/Gadget_Part_Factory.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Part_Factory.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Gadget_Part_Factory.h" -#include "Gadget_Part_Impl.h" - -Gadget_Part_var Gadget_Part_Factory::create_gadget_part (Gadget_ptr owner, - const char* name, - int size) -{ - return Gadget_Part_var (new Gadget_Part_Impl (owner, name, size)); -} diff --git a/examples/Smart_Pointers/Gadget_Part_Factory.h b/examples/Smart_Pointers/Gadget_Part_Factory.h deleted file mode 100644 index a7bc5cb38bd..00000000000 --- a/examples/Smart_Pointers/Gadget_Part_Factory.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Part_Factory.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef GADGET_PART_FACTORY_H -#define GADGET_PART_FACTORY_H - -#include "Gadget_Part.h" -#include "Gadget.h" - -/** - * @class Gadget_Part_Factory - * - * @brief Used to create Gadget_Part instances. - */ -class Gadget_Part_Factory -{ -public: - /// Create an instance of a gadget. Ownership of the object is automatically - /// transferred to the caller since we return a Gadget_Part_var. This also - /// means that the object will be deleted automatically if the caller - /// "forgets" to collect the return value. - static Gadget_Part_var create_gadget_part (Gadget_ptr owner, - const char *name, - int size); -}; - -#endif /* GADGET_PART_FACTORY_H */ diff --git a/examples/Smart_Pointers/Gadget_Part_Impl.cpp b/examples/Smart_Pointers/Gadget_Part_Impl.cpp deleted file mode 100644 index aeda00711bb..00000000000 --- a/examples/Smart_Pointers/Gadget_Part_Impl.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Part_Impl.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Gadget_Part_Impl.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/Unbounded_Queue.h" - -Gadget_Part_Impl::Gadget_Part_Impl (Gadget_ptr owner, - const char* name, - int size) - : owner_ (owner), - name_ (ACE::strnew (name)), - size_ (size) -{ - ACE_DEBUG ((LM_DEBUG, "Gadget_Part_Impl constructor\n")); -} - -Gadget_Part_Impl::~Gadget_Part_Impl (void) -{ - ACE_DEBUG ((LM_DEBUG, "Gadget_Part_Impl destructor\n")); - - delete [] name_; -} - -void Gadget_Part_Impl::print_info (void) -{ - ACE_DEBUG ((LM_INFO, "Gadget part: name=%s size=%d\n", name_, size_)); -} - -void Gadget_Part_Impl::remove_from_owner (void) -{ - // Need to guarantee the existence of the owner for the duration of this call. - Gadget_var owner = owner_; - - // Weak pointers are automatically set to NULL if the object they refer to - // is deleted. We can use this fact to check that our owner still exists. - if (owner == 0) - return; - - // Take all existing parts from the owner and build up a temporary list. If - // we find ourselves then we won't add ourselves to the list. - ACE_Unbounded_Queue<Gadget_Part_var> parts; - for (;;) - { - Gadget_Part_var part = owner->remove_part (); - if (part == 0) - break; - if (part != this) - parts.enqueue_tail (part); - } - - // Add the remaining parts back to the gadget. - while (!parts.is_empty ()) - { - Gadget_Part_var part; - parts.dequeue_head (part); - owner->add_part (part); - } -} diff --git a/examples/Smart_Pointers/Gadget_Part_Impl.h b/examples/Smart_Pointers/Gadget_Part_Impl.h deleted file mode 100644 index bcacb84f0c9..00000000000 --- a/examples/Smart_Pointers/Gadget_Part_Impl.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Gadget_Part_Impl.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef GADGET_PART_IMPL_H -#define GADGET_PART_IMPL_H - -#include "Gadget_Part.h" -#include "Gadget.h" - -/** - * @class Gadget_Part_Impl - * - * @brief An implementation of the Gadget_Part interface. - */ -class Gadget_Part_Impl : public Gadget_Part -{ -public: - /// Constructor. - Gadget_Part_Impl (Gadget_ptr owner, const char* name, int size); - - /// Destructor. - virtual ~Gadget_Part_Impl (void); - - /// Ask the part to print information about itself. - virtual void print_info (void); - - /// Ask the part to remove itself from the gadget that contains it. - virtual void remove_from_owner (void); - -private: - /// The gadget that contains this part. - /// - /// Some things to note about the choice of ACE_Weak_Bound_Ptr (from the - /// typedef for Gadget_ptr): - /// - We cannot use an ACE_Strong_Bound_Ptr (Gadget_var) since that would - /// result in circular ownership. - /// - If we use a raw pointer we have no circular ownership problems, but we - /// are unable to guarantee the lifetime of the owner object for the - /// duration of the remove_from_owner call. This may not be a problem in - /// this limited example, but in multithreaded programs remove_from_owner - /// may be called from a different thread to the thread which manages the - /// owner's lifetime. - /// - ACE_Weak_Bound_Ptr (Gadget_ptr) has no ownership semantics, so we have - /// no circular ownership problems. Weak pointers can also be converted - /// back into strong ones, so it is possible to guarantee the lifetime of - /// the owner object for the duration of the remove_from_owner call. - Gadget_ptr owner_; - - /// The name of this part. - char *name_; - - /// The size of this part. - int size_; -}; - -#endif /* GADGET_PART_IMPL_H */ diff --git a/examples/Smart_Pointers/Makefile b/examples/Smart_Pointers/Makefile deleted file mode 100644 index c77485764c7..00000000000 --- a/examples/Smart_Pointers/Makefile +++ /dev/null @@ -1,619 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the Smart_Pointers examples. -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = widget_test gadget_test - -WIDGET_SRC = Widget \ - Widget_Factory \ - Widget_Impl \ - Widget_Part \ - Widget_Part_Factory \ - Widget_Part_Impl \ - widget_test - -WIDGET_OBJ = $(addsuffix .o,$(WIDGET_SRC)) - -GADGET_SRC = Gadget \ - Gadget_Factory \ - Gadget_Impl \ - Gadget_Part \ - Gadget_Part_Factory \ - Gadget_Part_Impl \ - gadget_test - -GADGET_OBJ = $(addsuffix .o,$(GADGET_SRC)) - -LSRC = $(addsuffix .cpp,$(WIDGET_SRC)) \ - $(addsuffix .cpp,$(WIDGET_SRC)) - -BUILD = $(BIN) -VLDLIBS = $(LDLIBS:%=%$(VAR)) -VBIN = $(BIN:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -widget_test: $(addprefix $(VDIR),$(WIDGET_OBJ)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) - -gadget_test: $(addprefix $(VDIR),$(GADGET_OBJ)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - - -.obj/Widget.o .obj/Widget.so .shobj/Widget.o .shobj/Widget.so: Widget.cpp Widget.h Widget_Part.h - -.obj/Widget_Factory.o .obj/Widget_Factory.so .shobj/Widget_Factory.o .shobj/Widget_Factory.so: Widget_Factory.cpp Widget_Factory.h Widget.h \ - Widget_Part.h Widget_Impl.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp - -.obj/Widget_Impl.o .obj/Widget_Impl.so .shobj/Widget_Impl.o .shobj/Widget_Impl.so: Widget_Impl.cpp Widget_Impl.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp Widget.h Widget_Part.h - -.obj/Widget_Part.o .obj/Widget_Part.so .shobj/Widget_Part.o .shobj/Widget_Part.so: Widget_Part.cpp Widget_Part.h - -.obj/Widget_Part_Factory.o .obj/Widget_Part_Factory.so .shobj/Widget_Part_Factory.o .shobj/Widget_Part_Factory.so: Widget_Part_Factory.cpp Widget_Part_Factory.h \ - Widget_Part.h Widget.h Widget_Part_Impl.h - -.obj/Widget_Part_Impl.o .obj/Widget_Part_Impl.so .shobj/Widget_Part_Impl.o .shobj/Widget_Part_Impl.so: Widget_Part_Impl.cpp Widget_Part_Impl.h \ - Widget_Part.h Widget.h $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/pre.h $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h - -.obj/widget_test.o .obj/widget_test.so .shobj/widget_test.o .shobj/widget_test.so: widget_test.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h Widget.h Widget_Part.h \ - Widget_Factory.h Widget_Part_Factory.h - -.obj/Widget.o .obj/Widget.so .shobj/Widget.o .shobj/Widget.so: Widget.cpp Widget.h Widget_Part.h - -.obj/Widget_Factory.o .obj/Widget_Factory.so .shobj/Widget_Factory.o .shobj/Widget_Factory.so: Widget_Factory.cpp Widget_Factory.h Widget.h \ - Widget_Part.h Widget_Impl.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp - -.obj/Widget_Impl.o .obj/Widget_Impl.so .shobj/Widget_Impl.o .shobj/Widget_Impl.so: Widget_Impl.cpp Widget_Impl.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp Widget.h Widget_Part.h - -.obj/Widget_Part.o .obj/Widget_Part.so .shobj/Widget_Part.o .shobj/Widget_Part.so: Widget_Part.cpp Widget_Part.h - -.obj/Widget_Part_Factory.o .obj/Widget_Part_Factory.so .shobj/Widget_Part_Factory.o .shobj/Widget_Part_Factory.so: Widget_Part_Factory.cpp Widget_Part_Factory.h \ - Widget_Part.h Widget.h Widget_Part_Impl.h - -.obj/Widget_Part_Impl.o .obj/Widget_Part_Impl.so .shobj/Widget_Part_Impl.o .shobj/Widget_Part_Impl.so: Widget_Part_Impl.cpp Widget_Part_Impl.h \ - Widget_Part.h Widget.h $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/pre.h $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h - -.obj/widget_test.o .obj/widget_test.so .shobj/widget_test.o .shobj/widget_test.so: widget_test.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/pre.h \ - $(ACE_ROOT)/ace/post.h \ - $(ACE_ROOT)/ace/ACE_export.h \ - $(ACE_ROOT)/ace/svc_export.h \ - $(ACE_ROOT)/ace/ace_wchar.h \ - $(ACE_ROOT)/ace/ace_wchar.inl \ - $(ACE_ROOT)/ace/OS_Errno.h \ - $(ACE_ROOT)/ace/OS_Export.h \ - $(ACE_ROOT)/ace/OS_Errno.inl \ - $(ACE_ROOT)/ace/OS_Dirent.h \ - $(ACE_ROOT)/ace/OS_Dirent.inl \ - $(ACE_ROOT)/ace/OS_String.h \ - $(ACE_ROOT)/ace/OS_String.inl \ - $(ACE_ROOT)/ace/OS_Memory.h \ - $(ACE_ROOT)/ace/OS_Memory.inl \ - $(ACE_ROOT)/ace/OS_TLI.h \ - $(ACE_ROOT)/ace/OS_TLI.inl \ - $(ACE_ROOT)/ace/Min_Max.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Auto_Ptr.h \ - $(ACE_ROOT)/ace/Auto_Ptr.i \ - $(ACE_ROOT)/ace/Auto_Ptr.cpp \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.h \ - $(ACE_ROOT)/ace/Refcounted_Auto_Ptr.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Flag_Manip.h \ - $(ACE_ROOT)/ace/Flag_Manip.i \ - $(ACE_ROOT)/ace/Handle_Ops.h \ - $(ACE_ROOT)/ace/Handle_Ops.i \ - $(ACE_ROOT)/ace/Lib_Find.h \ - $(ACE_ROOT)/ace/Lib_Find.i \ - $(ACE_ROOT)/ace/Init_ACE.h \ - $(ACE_ROOT)/ace/Init_ACE.i \ - $(ACE_ROOT)/ace/Sock_Connect.h \ - $(ACE_ROOT)/ace/Sock_Connect.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread_Adapter.h \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ - $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread_Adapter.inl \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ - $(ACE_ROOT)/ace/Malloc_Base.h Widget.h Widget_Part.h \ - Widget_Factory.h Widget_Part_Factory.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/examples/Smart_Pointers/Makefile.bor b/examples/Smart_Pointers/Makefile.bor deleted file mode 100644 index d24ce76163e..00000000000 --- a/examples/Smart_Pointers/Makefile.bor +++ /dev/null @@ -1,7 +0,0 @@ -# -# Makefile for building the Smart_Pointers examples -# - -MAKEFILES = widget_test.bor gadget_test.bor - -!include <$(ACE_ROOT)\include\makeinclude\recurse.bor> diff --git a/examples/Smart_Pointers/README b/examples/Smart_Pointers/README deleted file mode 100644 index a23ea1eb828..00000000000 --- a/examples/Smart_Pointers/README +++ /dev/null @@ -1,29 +0,0 @@ -$Id$ - -Smart Pointers Example ----------------------- - -This example shows the use of the various smart pointer classes -available in ACE. - -There are two programs in this example. Each program implements a -similar set of classes, but with a different style of using smart -pointers. - -The Widget example is written such that objects may only pass raw -pointers between them, and use smart pointers to manage the object -lifetimes. An advantage of this style is the fine-grained control -over the type of smart pointer used in each situation. For example, -if you know that in a particular section of code there is no -concurrency involved, you can strategise ACE_Refcounted_Auto_Ptr on -ACE_Null_Mutex to eliminate locking overhead. Disadvantages of this -style include greater programming complexity and certain ownership -use cases not being easily supported. - -The Gadget example is written such that objects are always passed -around using one of the ACE_Strong_Bound_Ptr/ACE_Weak_Bound_Ptr -pair of smart pointers. The advantage of this style is the -reduction in complexity of object lifetime management (almost as -"good" as Java ;-) The disadvantage is that you pay a cost for the -reference counting and locking overhead even in situations where it -may not be strictly necessary. diff --git a/examples/Smart_Pointers/Smart_Pointers.dsw b/examples/Smart_Pointers/Smart_Pointers.dsw deleted file mode 100644 index 30f8470f76f..00000000000 --- a/examples/Smart_Pointers/Smart_Pointers.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Examples Smart_Pointers gadget"=.\gadget_test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Examples Smart_Pointers widget"=.\widget_test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/examples/Smart_Pointers/Widget.cpp b/examples/Smart_Pointers/Widget.cpp deleted file mode 100644 index 28d01b54461..00000000000 --- a/examples/Smart_Pointers/Widget.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Widget.h" - -Widget::~Widget (void) -{ -} diff --git a/examples/Smart_Pointers/Widget.h b/examples/Smart_Pointers/Widget.h deleted file mode 100644 index a38245ca999..00000000000 --- a/examples/Smart_Pointers/Widget.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef WIDGET_H -#define WIDGET_H - -#include "Widget_Part.h" - -/** - * @class Widget - * - * @brief An interface for some high-level application object. - */ -class Widget -{ -public: - /// Destructor. - virtual ~Widget (void); - - /// Add a new part to the widget. The widget takes ownership of the part - /// object. - virtual void add_part (Widget_Part *part) = 0; - - /// Remove a random part from the widget. Ownership of the part is returned - /// to the caller. - virtual Widget_Part *remove_part (void) = 0; - - /// Ask the widget to print information about the parts that it contains. - virtual void list_parts (void) = 0; -}; - -#endif /* WIDGET_H */ diff --git a/examples/Smart_Pointers/Widget_Factory.cpp b/examples/Smart_Pointers/Widget_Factory.cpp deleted file mode 100644 index 18fec0c23f4..00000000000 --- a/examples/Smart_Pointers/Widget_Factory.cpp +++ /dev/null @@ -1,18 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Factory.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Widget_Factory.h" -#include "Widget_Impl.h" - -Widget *Widget_Factory::create_widget (void) -{ - return new Widget_Impl; -} diff --git a/examples/Smart_Pointers/Widget_Factory.h b/examples/Smart_Pointers/Widget_Factory.h deleted file mode 100644 index adf0613a3fe..00000000000 --- a/examples/Smart_Pointers/Widget_Factory.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Factory.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef WIDGET_FACTORY_H -#define WIDGET_FACTORY_H - -#include "Widget.h" - -/** - * @class Widget_Factory - * - * @brief Used to create Widget instances. - */ -class Widget_Factory -{ -public: - /// Create an instance of a widget. Ownership of the newly created object is - /// transferred to the caller. - static Widget *create_widget (void); -}; - -#endif /* WIDGET_FACTORY_H */ diff --git a/examples/Smart_Pointers/Widget_Impl.cpp b/examples/Smart_Pointers/Widget_Impl.cpp deleted file mode 100644 index 2d3ab404804..00000000000 --- a/examples/Smart_Pointers/Widget_Impl.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Impl.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Widget_Impl.h" -#include "ace/Log_Msg.h" - -Widget_Impl::Widget_Impl (void) -{ - ACE_DEBUG ((LM_DEBUG, "Widget_Impl constructor\n")); -} - -Widget_Impl::~Widget_Impl (void) -{ - ACE_DEBUG ((LM_DEBUG, "Widget_Impl destructor\n")); -} - -void Widget_Impl::add_part (Widget_Part *part) -{ - // Take ownership of the part object using a ACE_Refcounted_Auto_Ptr. - ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> new_part (part); - - parts_.enqueue_tail (new_part); -} - -Widget_Part *Widget_Impl::remove_part (void) -{ - ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> removed_part; - if (parts_.dequeue_head (removed_part) == -1) - return 0; - - // Ownership of the part object is released and transferred to the caller. - return removed_part.release(); -} - -void Widget_Impl::list_parts (void) -{ - ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> > iter (parts_); - ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> *current_part; - while (iter.next (current_part)) - { - (*current_part)->print_info (); - iter.advance (); - } -} diff --git a/examples/Smart_Pointers/Widget_Impl.h b/examples/Smart_Pointers/Widget_Impl.h deleted file mode 100644 index a31fff3d224..00000000000 --- a/examples/Smart_Pointers/Widget_Impl.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Impl.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef WIDGET_IMPL_H -#define WIDGET_IMPL_H - -#include "ace/Unbounded_Queue.h" -#include "ace/Refcounted_Auto_Ptr.h" -#include "Widget.h" -#include "Widget_Part.h" - -/** - * @class Widget_Impl - * - * @brief An implementation of the Widget interface. - */ -class Widget_Impl : public Widget -{ -public: - /// Constructor. - Widget_Impl (void); - - /// Destructor. - virtual ~Widget_Impl (void); - - /// Add a new part to the widget. The widget takes ownership of the part - /// object. - virtual void add_part (Widget_Part *part); - - /// Remove a random part from the widget. Ownership of the part is returned - /// to the caller. - virtual Widget_Part *remove_part (void); - - /// Ask the widget to print information about the parts that it contains. - virtual void list_parts (void); - -private: - /// The parts which make up this widget. The set actually contains instances - /// of ACE_Refcounted_Auto_Ptr to automatically manage the lifetimes of the - /// constituent parts. - /// - /// Some things to note about the choice of ACE_Refcounted_Auto_Ptr: - /// - We cannot use auto_ptr to manage the objects, since auto_ptr does not - /// support the copying and assignment semantics necessary for storage in - /// a container. - /// - The ACE_Strong_Bound_Ptr reference counted pointer could be used to - /// store objects in a container, however (for reasons of safety) it - /// provides no way to release ownership of the object from the smart - /// pointer. We need to be able to release ownership to implement the - /// remove_part method. - /// - ACE_Refcounted_Ptr can both be stored in containers and allows us to - /// release ownership of the pointer that it contains. - ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> > parts_; -}; - -#endif /* WIDGET_IMPL_H */ diff --git a/examples/Smart_Pointers/Widget_Part.cpp b/examples/Smart_Pointers/Widget_Part.cpp deleted file mode 100644 index 7a74447cff9..00000000000 --- a/examples/Smart_Pointers/Widget_Part.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Part.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Widget_Part.h" - -Widget_Part::~Widget_Part (void) -{ -} diff --git a/examples/Smart_Pointers/Widget_Part.h b/examples/Smart_Pointers/Widget_Part.h deleted file mode 100644 index 7e1f0b575a9..00000000000 --- a/examples/Smart_Pointers/Widget_Part.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Part.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef WIDGET_PART_H -#define WIDGET_PART_H - -/** - * @class Widget_Part - * - * @brief An interface for some high-level application object. - */ -class Widget_Part -{ -public: - /// Destructor. - virtual ~Widget_Part (void); - - /// Ask the part to print information about itself. - virtual void print_info (void) = 0; - - /// Ask the part to remove itself from the widget that contains it. - virtual void remove_from_owner (void) = 0; -}; - -#endif /* WIDGET_PART_H */ diff --git a/examples/Smart_Pointers/Widget_Part_Factory.cpp b/examples/Smart_Pointers/Widget_Part_Factory.cpp deleted file mode 100644 index 501cdbc745c..00000000000 --- a/examples/Smart_Pointers/Widget_Part_Factory.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Part_Factory.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Widget_Part_Factory.h" -#include "Widget_Part_Impl.h" - -Widget_Part *Widget_Part_Factory::create_widget_part (Widget *owner, - const char* name, - int size) -{ - return new Widget_Part_Impl (owner, name, size); -} diff --git a/examples/Smart_Pointers/Widget_Part_Factory.h b/examples/Smart_Pointers/Widget_Part_Factory.h deleted file mode 100644 index 4902ab91c40..00000000000 --- a/examples/Smart_Pointers/Widget_Part_Factory.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Part_Factory.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef WIDGET_PART_FACTORY_H -#define WIDGET_PART_FACTORY_H - -#include "Widget_Part.h" -#include "Widget.h" - -/** - * @class Widget_Part_Factory - * - * @brief Used to create Widget_Part instances. - */ -class Widget_Part_Factory -{ -public: - /// Create an instance of a widget part. Ownership of the newly created - /// object is transferred to the caller. - static Widget_Part *create_widget_part (Widget *owner, const char *name, int size); -}; - -#endif /* WIDGET_PART_FACTORY_H */ diff --git a/examples/Smart_Pointers/Widget_Part_Impl.cpp b/examples/Smart_Pointers/Widget_Part_Impl.cpp deleted file mode 100644 index ffb42fe3a43..00000000000 --- a/examples/Smart_Pointers/Widget_Part_Impl.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Part_Impl.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "Widget_Part_Impl.h" -#include "ace/ACE.h" -#include "ace/Log_Msg.h" -#include "ace/Refcounted_Auto_Ptr.h" -#include "ace/Unbounded_Queue.h" - -Widget_Part_Impl::Widget_Part_Impl (Widget *owner, const char* name, int size) - : owner_ (owner), - name_ (ACE::strnew (name)), - size_ (size) -{ - ACE_DEBUG ((LM_DEBUG, "Widget_Part_Impl constructor\n")); -} - -Widget_Part_Impl::~Widget_Part_Impl (void) -{ - ACE_DEBUG ((LM_DEBUG, "Widget_Part_Impl destructor\n")); - - delete [] name_; -} - -void Widget_Part_Impl::print_info (void) -{ - ACE_DEBUG ((LM_INFO, "Widget part: name=%s size=%d\n", name_, size_)); -} - -void Widget_Part_Impl::remove_from_owner (void) -{ - // Since we only have a raw pointer to refer to the owner, we have no way of - // checking whether the owner still exists, and if it does guaranteeing that - // it will continue to exist for the duration of this call. This is not an - // issue in this limited example program, but in multithreaded applications - // this function may be called from a different thread to that managing the - // lifetime of the owner object. See the Gadget example for how - // ACE_Strong_Bound_Ptr/ACE_Weak_Bound_Ptr can be used to address the problem. - - // Take all existing parts from the owner and build up a temporary queue. If - // we find ourselves then we won't add ourselves to the queue. We will - // actually store ACE_Refcounted_Auto_Ptr instances in the queue, and since we - // know that there is only one thread involved we can use ACE_Null_Mutex to - // eliminate the locking overhead. - ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> > parts; - for (;;) - { - ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> part (owner_->remove_part ()); - if (part.null ()) - break; - if (part.get () == this) - // Someone else will be responsible for our lifetime. - part.release(); - else - parts.enqueue_tail (part); - } - - // Add the remaining parts back to the gadget. - while (!parts.is_empty ()) - { - ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> part; - parts.dequeue_head (part); - owner_->add_part (part.release ()); - } -} diff --git a/examples/Smart_Pointers/Widget_Part_Impl.h b/examples/Smart_Pointers/Widget_Part_Impl.h deleted file mode 100644 index dbb1d4c714c..00000000000 --- a/examples/Smart_Pointers/Widget_Part_Impl.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file Widget_Part_Impl.h - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#ifndef WIDGET_PART_IMPL_H -#define WIDGET_PART_IMPL_H - -#include "Widget_Part.h" -#include "Widget.h" - -/** - * @class Widget_Part_Impl - * - * @brief An implementation of the Widget_Part interface. - */ -class Widget_Part_Impl : public Widget_Part -{ -public: - /// Constructor. - Widget_Part_Impl (Widget *owner, const char* name, int size); - - /// Destructor. - virtual ~Widget_Part_Impl (void); - - /// Ask the part to print information about itself. - virtual void print_info (void); - - /// Ask the part to remove itself from the widget that contains it. - virtual void remove_from_owner (void); - -private: - /// The widget that contains this part. - Widget *owner_; - - /// The name of this part. - char *name_; - - /// The size of this part. - int size_; -}; - -#endif /* WIDGET_PART_IMPL_H */ diff --git a/examples/Smart_Pointers/gadget_test.bor b/examples/Smart_Pointers/gadget_test.bor deleted file mode 100644 index c3aa4184b8a..00000000000 --- a/examples/Smart_Pointers/gadget_test.bor +++ /dev/null @@ -1,22 +0,0 @@ -# -# Makefile for building the Gadget example -# - -NAME = gadget_test - -OBJFILES = \ - $(OBJDIR)\Gadget.obj \ - $(OBJDIR)\Gadget_Factory.obj \ - $(OBJDIR)\Gadget_Impl.obj \ - $(OBJDIR)\Gadget_Part.obj \ - $(OBJDIR)\Gadget_Part_Factory.obj \ - $(OBJDIR)\Gadget_Part_Impl.obj \ - $(OBJDIR)\gadget_test.obj - -CFLAGS = $(ACE_CFLAGS) - -CPPDIR = . - -LIBFILES = $(ACE_LIB) - -!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> diff --git a/examples/Smart_Pointers/gadget_test.cpp b/examples/Smart_Pointers/gadget_test.cpp deleted file mode 100644 index 95fd5d89b87..00000000000 --- a/examples/Smart_Pointers/gadget_test.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file gadget_test.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "ace/OS.h" -#include "ace/Auto_Ptr.h" -#include "ace/Refcounted_Auto_Ptr.h" -#include "ace/Unbounded_Queue.h" -#include "Gadget.h" -#include "Gadget_Factory.h" -#include "Gadget_Part.h" -#include "Gadget_Part_Factory.h" - -int main (int argc, char *argv[]) -{ - ACE_UNUSED_ARG (argc); - ACE_UNUSED_ARG (argv); - - Gadget_var g1 = Gadget_Factory::create_gadget (); - g1->add_part (Gadget_Part_Factory::create_gadget_part (g1, "part1", 1)); - g1->add_part (Gadget_Part_Factory::create_gadget_part (g1, "part2", 2)); - g1->add_part (Gadget_Part_Factory::create_gadget_part (g1, "part3", 3)); - - g1->list_parts (); - - Gadget_Part_var p1 = g1->remove_part (); - p1->print_info (); - - // Oops, we forgot to collect the return value! No worries, the temporary - // Gadget_var returned by the function call will clean it up automatically. - g1->remove_part (); - - g1->list_parts (); - - Gadget_var g2 = Gadget_Factory::create_gadget (); - g2->add_part (Gadget_Part_Factory::create_gadget_part (g2, "part4", 4)); - Gadget_Part_var p2 = Gadget_Part_Factory::create_gadget_part (g2, "part5", 5); - g2->add_part (p2); - p2->remove_from_owner (); - - g2->list_parts (); - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Bound_Ptr_Counter<ACE_SYNCH_MUTEX>; -template class ACE_Strong_Bound_Ptr<Gadget, ACE_SYNCH_MUTEX>; -template class ACE_Weak_Bound_Ptr<Gadget, ACE_SYNCH_MUTEX>; -template class ACE_Strong_Bound_Ptr<Gadget_Part, ACE_SYNCH_MUTEX>; -template class ACE_Weak_Bound_Ptr<Gadget_Part, ACE_SYNCH_MUTEX>; -template class ACE_Node<Gadget_Part_var>; -template class ACE_Unbounded_Queue<Gadget_Part_var>; -template class ACE_Unbounded_Queue_Iterator<Gadget_Part_var>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Bound_Ptr_Counter<ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Strong_Bound_Ptr<Gadget, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Weak_Bound_Ptr<Gadget, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Strong_Bound_Ptr<Gadget_Part, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Weak_Bound_Ptr<Gadget_Part, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Node<Gadget_Part_var> -#pragma instantiate ACE_Unbounded_Queue<Gadget_Part_var> -#pragma instantiate ACE_Unbounded_Queue_Iterator<Gadget_Part_var> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/examples/Smart_Pointers/gadget_test.dsp b/examples/Smart_Pointers/gadget_test.dsp deleted file mode 100644 index 9f6386848ae..00000000000 --- a/examples/Smart_Pointers/gadget_test.dsp +++ /dev/null @@ -1,163 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Examples Smart_Pointers gadget" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Examples Smart_Pointers gadget - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "gadget_test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "gadget_test.mak" CFG="Examples Smart_Pointers gadget - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Examples Smart_Pointers gadget - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "Examples Smart_Pointers gadget - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Examples Smart_Pointers gadget - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release\gadget_test"
-# PROP BASE Intermediate_Dir "Release\gadget_test"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release\gadget_test"
-# PROP Intermediate_Dir "Release\gadget_test"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c /D "NDEBUG" /O2 /MD /I "../../"
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 /nologo /subsystem:console /machine:I386 ../../ace/ACE.lib /out:"gadget_test.exe"
-
-!ELSEIF "$(CFG)" == "Examples Smart_Pointers gadget - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir "Debug\gadget_test"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug\gadget_test"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c /Gm /Zi
-# ADD CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c /Gm /Zi /D "_DEBUG" /Od /MDd /I "../../"
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /debug /pdbtype:sept
-# ADD LINK32 /nologo /subsystem:console /machine:I386 /debug /pdbtype:sept ../../ace/ACEd.lib /out:"gadget_test.exe"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Examples Smart_Pointers gadget - Win32 Release"
-# Name "Examples Smart_Pointers gadget - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\Gadget.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Part.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Part_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Part_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\gadget_test.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;fi;fd"
-# Begin Source File
-
-SOURCE=.\Gadget.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Part.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Part_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gadget_Part_Impl.h
-# End Source File
-# End Group
-# Begin Group "IDL Files"
-
-# PROP Default_Filter "idl;pidl"
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "inl;i"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/Smart_Pointers/widget_test.bor b/examples/Smart_Pointers/widget_test.bor deleted file mode 100644 index 4335f2cda73..00000000000 --- a/examples/Smart_Pointers/widget_test.bor +++ /dev/null @@ -1,22 +0,0 @@ -# -# Makefile for building the Widget example -# - -NAME = widget_test - -OBJFILES = \ - $(OBJDIR)\Widget.obj \ - $(OBJDIR)\Widget_Factory.obj \ - $(OBJDIR)\Widget_Impl.obj \ - $(OBJDIR)\Widget_Part.obj \ - $(OBJDIR)\Widget_Part_Factory.obj \ - $(OBJDIR)\Widget_Part_Impl.obj \ - $(OBJDIR)\widget_test.obj - -CFLAGS = $(ACE_CFLAGS) - -CPPDIR = . - -LIBFILES = $(ACE_LIB) - -!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> diff --git a/examples/Smart_Pointers/widget_test.cpp b/examples/Smart_Pointers/widget_test.cpp deleted file mode 100644 index d90692371ee..00000000000 --- a/examples/Smart_Pointers/widget_test.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file widget_test.cpp - * - * $Id$ - * - * @author Christopher Kohlhoff <chris@kohlhoff.com> - */ -//============================================================================= - -#include "ace/OS.h" -#include "ace/Auto_Ptr.h" -#include "ace/Refcounted_Auto_Ptr.h" -#include "ace/Unbounded_Queue.h" -#include "Widget.h" -#include "Widget_Factory.h" -#include "Widget_Part.h" -#include "Widget_Part_Factory.h" - -int main (int argc, char *argv[]) -{ - ACE_UNUSED_ARG (argc); - ACE_UNUSED_ARG (argv); - - auto_ptr<Widget> w1 (Widget_Factory::create_widget ()); - w1->add_part (Widget_Part_Factory::create_widget_part (w1.get(), "part1", 1)); - w1->add_part (Widget_Part_Factory::create_widget_part (w1.get(), "part2", 2)); - w1->add_part (Widget_Part_Factory::create_widget_part (w1.get(), "part3", 3)); - - w1->list_parts (); - - auto_ptr<Widget_Part> p1 (w1->remove_part ()); - p1->print_info (); - auto_ptr<Widget_Part> p2 (w1->remove_part ()); - - w1->list_parts (); - - auto_ptr<Widget> w2 (Widget_Factory::create_widget ()); - w2->add_part (Widget_Part_Factory::create_widget_part (w2.get(), "part4", 4)); - Widget_Part *p3 = Widget_Part_Factory::create_widget_part (w2.get(), "part5", 5); - w2->add_part (p3); - p3->remove_from_owner (); - - w2->list_parts (); - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Auto_Basic_Ptr<Widget>; -template class auto_ptr<Widget>; -template class ACE_Auto_Basic_Ptr<Widget_Part>; -template class auto_ptr<Widget_Part>; -template class ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX>; -template class ACE_Node<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> >; -template class ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> >; -template class ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> >; -template class ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex>; -template class ACE_Node<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> >; -template class ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> >; -template class ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> >; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Auto_Basic_Ptr<Widget> -#pragma instantiate auto_ptr<Widget> -#pragma instantiate ACE_Auto_Basic_Ptr<Widget_Part> -#pragma instantiate auto_ptr<Widget_Part> -#pragma instantiate ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Node<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> > -#pragma instantiate ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> > -#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_SYNCH_MUTEX> > -#pragma instantiate ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> -#pragma instantiate ACE_Node<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> > -#pragma instantiate ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> > -#pragma instantiate ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<Widget_Part, ACE_Null_Mutex> > -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/examples/Smart_Pointers/widget_test.dsp b/examples/Smart_Pointers/widget_test.dsp deleted file mode 100644 index f421e989146..00000000000 --- a/examples/Smart_Pointers/widget_test.dsp +++ /dev/null @@ -1,163 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Examples Smart_Pointers widget" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Examples Smart_Pointers widget - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "widget_test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "widget_test.mak" CFG="Examples Smart_Pointers widget - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Examples Smart_Pointers widget - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "Examples Smart_Pointers widget - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Examples Smart_Pointers widget - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release\widget_test"
-# PROP BASE Intermediate_Dir "Release\widget_test"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release\widget_test"
-# PROP Intermediate_Dir "Release\widget_test"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c /D "NDEBUG" /O2 /MD /I "../../"
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 /nologo /subsystem:console /machine:I386 ../../ace/ACE.lib /out:"widget_test.exe"
-
-!ELSEIF "$(CFG)" == "Examples Smart_Pointers widget - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir "Debug\widget_test"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug\widget_test"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c /Gm /Zi
-# ADD CPP /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c /Gm /Zi /D "_DEBUG" /Od /MDd /I "../../"
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /debug /pdbtype:sept
-# ADD LINK32 /nologo /subsystem:console /machine:I386 /debug /pdbtype:sept ../../ace/ACEd.lib /out:"widget_test.exe"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Examples Smart_Pointers widget - Win32 Release"
-# Name "Examples Smart_Pointers widget - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\Widget.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Part.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Part_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Part_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\widget_test.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;fi;fd"
-# Begin Source File
-
-SOURCE=.\Widget.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Part.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Part_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Widget_Part_Impl.h
-# End Source File
-# End Group
-# Begin Group "IDL Files"
-
-# PROP Default_Filter "idl;pidl"
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "inl;i"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
|