diff options
Diffstat (limited to 'examples/APG/Containers/Allocator.cpp')
-rw-r--r-- | examples/APG/Containers/Allocator.cpp | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/examples/APG/Containers/Allocator.cpp b/examples/APG/Containers/Allocator.cpp deleted file mode 100644 index 9f9fe92d2cc..00000000000 --- a/examples/APG/Containers/Allocator.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -#include "ace/Containers.h" -#include "ace/Malloc_T.h" -#include "ace/Synch.h" // Needed for the lock. -#include "DataElement.h" - -class StackExample -{ -public: - // Illustrate all the differnet - // types of stacks provided by ACE. - int run (void); - -private: - // Illustrate the use of an unbounded stack. - int runUnboundedStack (ACE_Allocator* allocator); -}; - -// Listing 1 code/ch05 -int StackExample::run (void) -{ - ACE_TRACE (ACE_TEXT ("StackUser::run")); - - ACE_Allocator *allocator = 0; - size_t block_size = sizeof(ACE_Node<DataElement>); - ACE_NEW_RETURN - (allocator, - ACE_Dynamic_Cached_Allocator<ACE_Null_Mutex> - (100 + 1, block_size), - -1); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n# of live objects %d\n"), - DataElement::numOfActiveObjects ())); - - ACE_ASSERT (this->runUnboundedStack (allocator) != -1); - - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n# of live objects %d\n"), - DataElement::numOfActiveObjects ())); - - delete allocator; - return 0; -} -// Listing 1 -// Listing 2 code/ch05 -int StackExample::runUnboundedStack (ACE_Allocator* allocator) -{ - ACE_TRACE (ACE_TEXT ("StackExample::runUnboundedStack")); - - // Pass in an allocator during construction. - ACE_Unbounded_Stack<DataElement> ustack (allocator); - - for (int m = 0; m < 100; m++) - { - DataElement elem (m); - int result = ustack.push (elem); - if (result == -1) - ACE_ERROR_RETURN - ((LM_ERROR, ACE_TEXT ("%p\n"), - ACE_TEXT ("Push Next Element")), - -1); - } - - void* furtherMemory = 0; - furtherMemory = allocator->malloc - (sizeof(ACE_Node<DataElement>)); - ACE_ASSERT (furtherMemory == 0); - - // No memory left.. - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%p\n"), - ACE_TEXT ("No memory.."))); - - // Free up some memory in the allocator. - DataElement e; - for (int n = 0; n < 10; n++) - { - ustack.pop (e); - } - - furtherMemory = - allocator->malloc (sizeof (ACE_Node<DataElement>)); - ACE_ASSERT (furtherMemory != 0); - - return 0; -} -// Listing 2 - -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - StackExample se; - return se.run (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Dynamic_Cached_Allocator<ACE_Null_Mutex>; -template class ACE_Unbounded_Stack<DataElement>; -template class ACE_Node<DataElement>; -template class ACE_Cached_Mem_Pool_Node<char>; -template class ACE_Free_List<ACE_Cached_Mem_Pool_Node<char> >; -template class ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<char>,ACE_Null_Mutex>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Dynamic_Cached_Allocator<ACE_Null_Mutex> -#pragma instantiate ACE_Unbounded_Stack<DataElement> -#pragma instantiate ACE_Node<DataElement> -#pragma instantiate ACE_Cached_Mem_Pool_Node<char> -#pragma instantiate ACE_Free_List<ACE_Cached_Mem_Pool_Node<char> > -#pragma instantiate ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<char>,ACE_Null_Mutex> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION*/ |