diff options
Diffstat (limited to 'ml/dlib/dlib/memory_manager_stateless')
3 files changed, 0 insertions, 347 deletions
diff --git a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_1.h b/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_1.h deleted file mode 100644 index 0d5794d54..000000000 --- a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_1.h +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (C) 2006 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_MEMORY_MANAGER_STATELESs_1_ -#define DLIB_MEMORY_MANAGER_STATELESs_1_ - -#include "memory_manager_stateless_kernel_abstract.h" - -namespace dlib -{ - template < - typename T - > - class memory_manager_stateless_kernel_1 - { - /*! - this implementation just calls new and delete directly - !*/ - - public: - - typedef T type; - const static bool is_stateless = true; - - template <typename U> - struct rebind { - typedef memory_manager_stateless_kernel_1<U> other; - }; - - memory_manager_stateless_kernel_1( - ) - {} - - virtual ~memory_manager_stateless_kernel_1( - ) {} - - T* allocate ( - ) - { - return new T; - } - - void deallocate ( - T* item - ) - { - delete item; - } - - T* allocate_array ( - unsigned long size - ) - { - return new T[size]; - } - - void deallocate_array ( - T* item - ) - { - delete [] item; - } - - void swap (memory_manager_stateless_kernel_1&) - {} - - private: - - // restricted functions - memory_manager_stateless_kernel_1(memory_manager_stateless_kernel_1&); // copy constructor - memory_manager_stateless_kernel_1& operator=(memory_manager_stateless_kernel_1&); // assignment operator - }; - - template < - typename T - > - inline void swap ( - memory_manager_stateless_kernel_1<T>& a, - memory_manager_stateless_kernel_1<T>& b - ) { a.swap(b); } - -} - -#endif // DLIB_MEMORY_MANAGER_STATELESs_1_ - - - diff --git a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h b/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h deleted file mode 100644 index 7c4bf76f5..000000000 --- a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (C) 2006 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_MEMORY_MANAGER_STATELESs_2_ -#define DLIB_MEMORY_MANAGER_STATELESs_2_ - -#include "../algs.h" -#include "memory_manager_stateless_kernel_abstract.h" -#include "../threads.h" - -namespace dlib -{ - template < - typename T, - typename mem_manager - > - class memory_manager_stateless_kernel_2 - { - /*! - REQUIREMENTS ON mem_manager - mem_manager must be an implementation of memory_manager/memory_manager_kernel_abstract.h - - CONVENTION - this object has a single global instance of mem_manager - !*/ - - public: - - typedef T type; - const static bool is_stateless = true; - - template <typename U> - struct rebind { - typedef memory_manager_stateless_kernel_2<U,mem_manager> other; - }; - - memory_manager_stateless_kernel_2( - ) - { - // call this just to make sure the mutex is is initialized before - // multiple threads start calling the member functions. - global_mutex(); - } - - virtual ~memory_manager_stateless_kernel_2( - ) {} - - T* allocate ( - ) - { - auto_mutex M(global_mutex()); - return global_mm().allocate(); - } - - void deallocate ( - T* item - ) - { - auto_mutex M(global_mutex()); - return global_mm().deallocate(item); - } - - T* allocate_array ( - unsigned long size - ) - { - auto_mutex M(global_mutex()); - return global_mm().allocate_array(size); - } - - void deallocate_array ( - T* item - ) - { - auto_mutex M(global_mutex()); - return global_mm().deallocate_array(item); - } - - void swap (memory_manager_stateless_kernel_2&) - {} - - private: - - static mutex& global_mutex ( - ) - { - static mutex lock; - return lock; - } - - typedef typename mem_manager::template rebind<T>::other rebound_mm_type; - - static rebound_mm_type& global_mm ( - ) - { - static rebound_mm_type mm; - return mm; - } - - // restricted functions - memory_manager_stateless_kernel_2(memory_manager_stateless_kernel_2&); // copy constructor - memory_manager_stateless_kernel_2& operator=(memory_manager_stateless_kernel_2&); // assignment operator - }; - - template < - typename T, - typename mem_manager - > - inline void swap ( - memory_manager_stateless_kernel_2<T,mem_manager>& a, - memory_manager_stateless_kernel_2<T,mem_manager>& b - ) { a.swap(b); } - -} - -#endif // DLIB_MEMORY_MANAGER_STATELESs_2_ - - - - diff --git a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_abstract.h b/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_abstract.h deleted file mode 100644 index 2c5b1e73c..000000000 --- a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_abstract.h +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright (C) 2006 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#undef DLIB_MEMORY_MANAGER_STATELESs_ABSTRACT_ -#ifdef DLIB_MEMORY_MANAGER_STATELESs_ABSTRACT_ - -#include "../algs.h" - -namespace dlib -{ - template < - typename T - > - class memory_manager_stateless - { - /*! - REQUIREMENTS ON T - T must have a default constructor. - - WHAT THIS OBJECT REPRESENTS - This object represents some kind of stateless memory manager or memory pool. - Stateless means that all instances (instances of the same kernel implementation that is) - of this object are identical and can be used interchangeably. Note that - implementations are allowed to have some shared global state such as a - global memory pool. - - THREAD SAFETY - This object is thread safe. You may access it from any thread at any time - without synchronizing access. - !*/ - - public: - - typedef T type; - const static bool is_stateless = true; - - template <typename U> - struct rebind { - typedef memory_manager_stateless<U> other; - }; - - memory_manager_stateless( - ); - /*! - ensures - - #*this is properly initialized - throws - - std::bad_alloc - !*/ - - virtual ~memory_manager_stateless( - ); - /*! - ensures - - frees any resources used by *this but has no effect on any shared global - resources used by the implementation. - !*/ - - T* allocate ( - ); - /*! - ensures - - allocates a new object of type T and returns a pointer to it. - throws - - std::bad_alloc or any exception thrown by T's constructor. - If this exception is thrown then the call to allocate() - has no effect on #*this. - !*/ - - void deallocate ( - T* item - ); - /*! - requires - - item == is a pointer to memory that was obtained from a call to - allocate(). (i.e. The pointer you are deallocating must have - come from the same implementation of memory_manager_stateless - that is trying to deallocate it.) - - the memory pointed to by item hasn't already been deallocated. - ensures - - deallocates the object pointed to by item - !*/ - - T* allocate_array ( - unsigned long size - ); - /*! - ensures - - allocates a new array of size objects of type T and returns a - pointer to it. - throws - - std::bad_alloc or any exception thrown by T's constructor. - If this exception is thrown then the call to allocate() - has no effect on #*this. - !*/ - - void deallocate_array ( - T* item - ); - /*! - requires - - item == is a pointer to memory that was obtained from a call to - allocate_array(). (i.e. The pointer you are deallocating must have - come from the same implementation of memory_manager_stateless - that is trying to deallocate it.) - - the memory pointed to by item hasn't already been deallocated. - ensures - - deallocates the array pointed to by item - !*/ - - void swap ( - memory_manager_stateless& item - ); - /*! - ensures - - this function has no effect on *this or item. It is just provided - to make this object's interface more compatable with the other - memory managers. - !*/ - - private: - - // restricted functions - memory_manager_stateless(memory_manager_stateless&); // copy constructor - memory_manager_stateless& operator=(memory_manager_stateless&); // assignment operator - }; - - template < - typename T - > - inline void swap ( - memory_manager_stateless<T>& a, - memory_manager_stateless<T>& b - ) { a.swap(b); } - /*! - provides a global swap function - !*/ - -} - -#endif // DLIB_MEMORY_MANAGER_STATELESs_ABSTRACT_ - - |