57 template<
typename Data>
91 template<
typename Data>
125 template<
typename Data>
161 template<
typename Data>
195 template<
class Container>
219 return Get(objectPtr).empty();
223 Get(objectPtr).clear();
232 #if defined(_RWSTD_VER) && !defined(_RWSTD_STRICT_ANSI)
233 container.allocation_size(container.size());
239 container.push_back(elm);
244 return &container.back();
251 #if defined(_RWSTD_VER) && !defined(_RWSTD_STRICT_ANSI)
252 container.allocation_size(container.size());
255 in.SetDiscardCurrObject(
false);
257 if (
in.GetDiscardCurrObject()) {
258 container.pop_back();
259 in.SetDiscardCurrObject(
false);
262 return &container.back();
269 return container.size();
286 template<
class Container>
298 container.reserve(
count);
308 template<
class Container>
320 #if defined(_RWSTD_VER) && !defined(_RWSTD_STRICT_ANSI)
321 container.allocation_size(container.size());
323 if ( !container.insert(element).second )
357 template<
class Container>
370 #if defined(_RWSTD_VER) && !defined(_RWSTD_STRICT_ANSI)
371 container.allocation_size(container.size());
373 container.insert(element);
406 template<
class Container,
class StlIterator,
407 typename ContainerPtr,
typename ElementRef,
408 class TypeInfoIterator>
476 ElementRef e= *
It(iter);
481 template<
class Container>
483 public CStlClassInfoFunctionsIBase<Container, typename Container::const_iterator, const Container*, const typename Container::value_type&, CContainerTypeInfo::CConstIterator>
497 template<
class Container>
499 public CStlClassInfoFunctionsIBase<Container, typename Container::iterator, Container*, typename Container::value_type&, CContainerTypeInfo::CIterator>
510 Container* c =
static_cast<Container*
>(iter.GetContainerPtr());
512 return it != c->end();
516 Container* c =
static_cast<Container*
>(iter.GetContainerPtr());
531 template<
class Container>
533 public CStlClassInfoFunctionsIBase<Container, typename Container::iterator, Container*, typename Container::value_type&, CContainerTypeInfo::CIterator>
549 Container* c =
static_cast<Container*
>(iter.GetContainerPtr());
552 return it != c->end();
556 Container* c =
static_cast<Container*
>(iter.GetContainerPtr());
571 template<
typename Data>
630 template<
typename Data>
675 template<
typename Data>
701 template<
typename Data>
728 template<
typename Data,
typename Comparator>
757 template<
typename Data,
typename Comparator>
786 template<
typename Key,
typename Value>
821 template<
typename Key,
typename Value>
856 template<
typename Key,
typename Value,
typename Comparator>
893 template<
typename Key,
typename Value,
typename Comparator>
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
container_type::value_type value_type
container_type::value_type value_type
Include a standard set of the NCBI C++ Toolkit most basic headers.
element_type * get(void) const
Get pointer.
ESerialRecursionMode
How to assign and compare child sub-objects of serial objects.
static TObjectType & Get(TObjectPtr object)
const void * TConstObjectPtr
ssize_t TPointerOffsetType
TObjectType * GetPointer(void) const THROWS_NONE
Get pointer,.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static TTypeInfo Get_CRef(TTypeInfo arg, TTypeInfoCreator1 f)
static TTypeInfo GetInfo(TTypeInfo &storage, TTypeInfo arg, TTypeInfoCreator1 f)
static TObjectPtr AddElementIn(const CContainerTypeInfo *containerType, TObjectPtr containerPtr, CObjectIStream &in)
static TTypeInfo GetTypeInfo(TTypeInfo dataType)
static TObjectPtr AddElementIn(const CContainerTypeInfo *containerType, TObjectPtr containerPtr, CObjectIStream &in)
TTypeInfoIterator::TObjectPtr TObjectPtr
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType)
static TObjectPtr GetData(const CPointerTypeInfo *, TObjectPtr objectPtr)
TObjectPtr GetContainerPtr(void) const
AutoPtr< TDataType > TObjectType
set< Data, Comparator > TObjectType
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType)
static void CopyIterator(TTypeInfoIterator &dst, const TTypeInfoIterator &src)
static bool EraseElement(TTypeInfoIterator &iter)
CParent::TTypeInfoIterator TTypeInfoIterator
TObjectType::value_type TElementType
CStlClassInfoFunctions< Container > CParent
static TTypeInfo GetSet_vector(TTypeInfo arg, TTypeInfoCreator1 f)
static TTypeInfo Get_map(TTypeInfo arg1, TTypeInfo arg2, TTypeInfoCreator2 f)
CParent::TObjectPtr TObjectPtr
CParent::TStlIterator TStlIterator
static TTypeInfo GetTypeInfo(TTypeInfo elementType)
CStlClassInfoFunctions< Container > CParent
static TTypeInfo GetTypeInfo(TTypeInfo elementType)
static TObjectPtr CreateContainer(TTypeInfo, CObjectMemoryPool *)
static void EraseAllElements(TTypeInfoIterator &iter)
static TTypeInfo GetSet_list(TTypeInfo arg, TTypeInfoCreator1 f)
static TTypeInfo GetTypeInfo(TTypeInfo elementType)
static CTypeInfo * CreateTypeInfo(TTypeInfo dataType)
CConstRef< TDataType > TObjectType
static TTypeInfo Get_AutoPtr(TTypeInfo arg, TTypeInfoCreator1 f)
CParent::TObjectType TObjectType
static TObjectPtr GetData(const CPointerTypeInfo *, TObjectPtr objectPtr)
static void SetAddElementFunctions(CStlOneArgTemplate *info)
static void SetCountFunctions(CStlOneArgTemplate *info)
static CTypeInfo * CreateTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType)
static TTypeInfo GetTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
static void EraseAllElements(TTypeInfoIterator &iter)
static TTypeInfo Get_set(TTypeInfo arg, TTypeInfoCreator1 f)
static CTypeInfo * CreateTypeInfo(TTypeInfo dataType)
static TTypeInfo GetTypeInfo(TTypeInfo elementType)
map< Key, Value > TObjectType
static TTypeInfo GetTypeInfo(TTypeInfo dataType)
static TStlIterator & It(TTypeInfoIterator &iter)
static TTypeInfo Get_multiset(TTypeInfo arg, TTypeInfoCreator1 f)
TObjectType::value_type TElementType
static TTypeInfo GetTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
TObjectType::value_type TElementType
static TTypeInfo GetTypeInfo(TTypeInfo dataType)
static TTypeInfo GetTypeInfo(TTypeInfo elementType)
static bool NextElement(TTypeInfoIterator &iter)
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType)
vector< Data > TObjectType
CRef< TDataType > TObjectType
static TTypeInfo Get_auto_ptr(TTypeInfo arg, TTypeInfoCreator1 f)
static void SetFunctions(CStlOneArgTemplate *info)
NCBI_NS_NCBI::TConstObjectPtr TObjectPtr
static void CannotGetElementOfSet(void)
static void InsertElement(TObjectPtr containerPtr, const TElementType &element)
static TObjectPtr GetElementPtr(const TTypeInfoIterator &)
static TObjectPtr GetData(const CPointerTypeInfo *, TObjectPtr objectPtr)
static void SetData(const CPointerTypeInfo *, TObjectPtr objectPtr, TObjectPtr dataPtr)
static void SetIteratorFunctions(CStlOneArgTemplate *info)
CStlClassInfoFunctionsIBase< Container, typename Container::iterator, Container *, typename Container::value_type &, CContainerTypeInfo::CIterator > CParent
static TObjectPtr AddElement(const CContainerTypeInfo *, TObjectPtr containerPtr, TConstObjectPtr elementPtr, ESerialRecursionMode=eRecursive)
multimap< Key, Value, Comparator > TObjectType
static TObjectPtr AddElement(const CContainerTypeInfo *containerType, TObjectPtr containerPtr, TConstObjectPtr elementPtr, ESerialRecursionMode how=eRecursive)
static void SetMemFunctions(CStlOneArgTemplate *info)
TObjectType::value_type TElementType
static void SetAddElementFunctions(CStlOneArgTemplate *info)
static TTypeInfo GetSetTypeInfo(TTypeInfo elementType)
static TTypeInfo GetSetTypeInfo(TTypeInfo elementType)
static TTypeInfo GetTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
TObjectType::value_type TElementType
void ReadData(CObjectIStream &in, TObjectPtr object) const
CStlClassInfoFunctions< Container > CParent
multiset< Data > TObjectType
static TObjectPtr AddElementIn(const CContainerTypeInfo *containerType, TObjectPtr containerPtr, CObjectIStream &in)
virtual void Assign(TObjectPtr dst, TConstObjectPtr src, ESerialRecursionMode how=eRecursive) const =0
Set object to copy of another one.
static size_t GetElementCount(const CContainerTypeInfo *, TConstObjectPtr containerPtr)
static TTypeInfo Get_CConstRef(TTypeInfo arg, TTypeInfoCreator1 f)
static TObjectPtr AddElement(const CContainerTypeInfo *, TObjectPtr containerPtr, TConstObjectPtr elementPtr, ESerialRecursionMode)
multimap< Key, Value > TObjectType
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType)
CParent::TStlIterator TStlIterator
static void SetFunctions(CStlOneArgTemplate *info)
static void ReleaseIterator(TTypeInfoIterator &iter)
static CTypeInfo * CreateTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
TObjectType::value_type TElementType
static TObjectPtr GetData(const CPointerTypeInfo *, TObjectPtr objectPtr)
static bool InitIterator(TTypeInfoIterator &iter)
CStlClassInfoFunctions< Container > CParent
static CTypeInfo * CreateTypeInfo(TTypeInfo dataType)
static bool EraseElement(TTypeInfoIterator &iter)
unique_ptr< TDataType > TObjectType
static TTypeInfo GetTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
static CTypeInfo * CreateSetTypeInfo(TTypeInfo elementType)
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType, const string &name)
static TObjectType & Get(TObjectPtr objectPtr)
static void InsertElement(TObjectPtr containerPtr, const TElementType &element)
static const TObjectType & Get(TConstObjectPtr objectPtr)
static CTypeInfo * CreateTypeInfo(TTypeInfo dataType)
static void SetDefault(TObjectPtr objectPtr)
static void ThrowDuplicateElementError(void)
static void SetIteratorFunctions(CStlOneArgTemplate *info)
TypeInfoIterator TTypeInfoIterator
static void SetIteratorFunctions(CStlOneArgTemplate *info)
static TTypeInfo Get_multimap(TTypeInfo arg1, TTypeInfo arg2, TTypeInfoCreator2 f)
multiset< Data, Comparator > TObjectType
map< Key, Value, Comparator > TObjectType
CStlClassInfoFunctionsIBase< Container, typename Container::iterator, Container *, typename Container::value_type &, CContainerTypeInfo::CIterator > CParent
static const TStlIterator & It(const TTypeInfoIterator &iter)
static CTypeInfo * CreateTypeInfo(TTypeInfo elementType)
static CTypeInfo * CreateSetTypeInfo(TTypeInfo elementType)
static TTypeInfo Get_vector(TTypeInfo arg, TTypeInfoCreator1 f)
void SetFunctions(TGetDataFunction getFunc, TSetDataFunction setFunc)
TObjectType::value_type TElementType
CParent::TObjectType TObjectType
static void ReserveElements(const CContainerTypeInfo *, TObjectPtr containerPtr, size_t count)
static void SetData(const CPointerTypeInfo *, TObjectPtr objectPtr, TObjectPtr dataPtr)
static CTypeInfo * CreateTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
CParent::TObjectType TObjectType
TObjectType::value_type TElementType
CStlClassInfoFunctionsIBase< Container, typename Container::const_iterator, const Container *, const typename Container::value_type &, CContainerTypeInfo::CConstIterator > CParent
static void SetCountFunctions(CStlOneArgTemplate *info)
CParent::TObjectPtr TObjectPtr
static TTypeInfo GetTypeInfo(TTypeInfo dataType)
static void SetData(const CPointerTypeInfo *, TObjectPtr objectPtr, TObjectPtr dataPtr)
static TObjectPtr GetElementPtr(const TTypeInfoIterator &iter)
static void SetAddElementFunctions(CStlOneArgTemplate *info)
static CTypeInfo * CreateTypeInfo(TTypeInfo keyType, TTypeInfo valueType)
static void SetData(const CPointerTypeInfo *, TObjectPtr objectPtr, TObjectPtr dataPtr)
TTypeInfo GetElementType(void) const
static bool IsDefault(TConstObjectPtr objectPtr)
static TTypeInfo Get_list(TTypeInfo arg, TTypeInfoCreator1 f)
static TTypeInfo GetTypeInfo(TTypeInfo elementType)
static CTypeInfo * CreateSetTypeInfo(TTypeInfo elementType, const string &name)
CParent::TTypeInfoIterator TTypeInfoIterator
double value_type
The numeric datatype used by the parser.
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
Useful/utility classes and methods.
std::istream & in(std::istream &in_, double &x_)