00001 #ifndef guard_unbounded_array_allocation_traits_hpp 00002 #define guard_unbounded_array_allocation_traits_hpp 00003 /** 00004 * @file 00005 * 00006 * @brief Details can be found in the documentation for 00007 * TAO::details::generic_sequence 00008 * 00009 * $Id: Unbounded_Array_Allocation_Traits_T.h 84506 2009-02-18 11:15:38Z vzykov $ 00010 * 00011 * @author Carlos O'Ryan 00012 */ 00013 00014 #include "tao/Basic_Types.h" 00015 00016 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00017 00018 namespace TAO 00019 { 00020 namespace details 00021 { 00022 00023 template<typename T, bool dummy> 00024 struct unbounded_array_allocation_traits 00025 { 00026 typedef T value_type; 00027 00028 inline static CORBA::ULong default_maximum() 00029 { 00030 return 0; 00031 } 00032 00033 inline static value_type * default_buffer_allocation() 00034 { 00035 return 0; 00036 } 00037 00038 inline static value_type * allocbuf(CORBA::ULong maximum) 00039 { 00040 return new value_type[maximum]; 00041 } 00042 00043 inline static value_type * allocbuf_noinit(CORBA::ULong maximum) 00044 { 00045 return new value_type[maximum]; 00046 } 00047 00048 inline static void freebuf(value_type * buffer) 00049 { 00050 delete[] buffer; 00051 } 00052 }; 00053 00054 } // namespace details 00055 } // namespace TAO 00056 00057 TAO_END_VERSIONED_NAMESPACE_DECL 00058 00059 #endif // guard_unbounded_array_allocation_traits_hpp