#include <collection_impl.h>
Public Member Functions | |
PluginCollectionImpl (void) | |
~PluginCollectionImpl (void) | |
template<typename T > | |
void | create () |
template<typename T > | |
std::vector< T > & | take_data_ref () |
Data Fields | |
Signal< PluginCollectionImpl * > | release_signal |
PluginCollectionImpl provides a template based collection container. Through this class, caller is able to store data inside the collection. If caller wants to strore pointe data in the collection, it's necessary for caller to connect the release_signal, so that when collection object is to be released, the caller can be notified.
Definition at line 119 of file images/plugin_impl/collection_impl.h.
images::PluginCollectionImpl::PluginCollectionImpl | ( | void | ) | [inline] |
Definition at line 123 of file images/plugin_impl/collection_impl.h.
References utils::ObjectTable< T >::add_interface(), IPluginCollection::get_data, IPluginCollection::get_num_elements, _IPluginUnknown::query_interface, and _IPluginUnknown::release.
00124 : data(0) 00125 { 00126 query_interface = query_interface_impl; 00127 release = release_impl; 00128 get_data = get_data_impl; 00129 get_num_elements = get_num_elements_impl; 00130 00131 g_instances_table.add_interface<IPluginUnknown>(this); 00132 g_instances_table.add_interface<IPluginCollection>(this); 00133 }
images::PluginCollectionImpl::~PluginCollectionImpl | ( | void | ) | [inline] |
Definition at line 135 of file images/plugin_impl/collection_impl.h.
References utils::ObjectTable< T >::remove().
00136 { 00137 if (data) 00138 { 00139 delete data; 00140 data = 0; 00141 } 00142 g_instances_table.remove(this); 00143 }
void images::PluginCollectionImpl::create | ( | ) | [inline] |
Definition at line 150 of file images/plugin_impl/collection_impl.h.
00151 { 00152 data = new DataContainer<T>; 00153 }
std::vector<T>& images::PluginCollectionImpl::take_data_ref | ( | ) | [inline] |
Definition at line 156 of file images/plugin_impl/collection_impl.h.
References images::DataContainer< T >::ref().
00157 { 00158 DataContainer<T> *ptr = static_cast<DataContainer<T> *>(data); 00159 return ptr->ref(); 00160 }
Definition at line 146 of file images/plugin_impl/collection_impl.h.