library: libCore #include "TGenCollectionProxy.h"

# TGenCollectionProxy

class description - source file - inheritance tree (.pdf)

## class TGenCollectionProxy : public TVirtualCollectionProxy, public TCollectionProxy

| Inheritance Chart:
`TVirtualCollectionProxy`
`TCollectionProxy`
| <- | `TGenCollectionProxy` |
<- |
`TEmulatedCollectionProxy` | <- |
`TEmulatedMapProxy` |

        protected:

                                  void CheckFunctions() const
                          virtual void DeleteItem(bool force, void* ptr) const
                  TGenCollectionProxy* Initialize() const
          virtual TGenCollectionProxy* InitializeEx()

        public:

                                           TGenCollectionProxy(const TGenCollectionProxy& copy)
                                           TGenCollectionProxy(TCollectionProxy::Info_t typ, size_t iter_size)
                                   virtual ~TGenCollectionProxy()
                             virtual void* Allocate(UInt_t n, Bool_t forceDelete)
                             virtual void* At(UInt_t idx)
                              virtual void Clear(const char* opt = "")
                              virtual void Commit(void* env)
          virtual TVirtualCollectionProxy* Generate() const
                           virtual TClass* GetCollectionClass()
                         virtual EDataType GetType()
                           virtual TClass* GetValueClass()
                            virtual Bool_t HasPointers() const
                              virtual void operator()(TBuffer& refBuffer, void* pObject)
                              virtual void PopProxy()
                              virtual void PushProxy(void* objstart)
                              virtual void Resize(UInt_t n, Bool_t force_delete)
                              virtual void SetValueClass(TClass* newcl)
                            virtual UInt_t Size() const
                            virtual UInt_t Sizeof() const
                              virtual void Streamer(TBuffer& refBuffer)
                              virtual void Streamer(TBuffer& refBuffer, void* pObject, int siz)

### Data Members

        protected:

                                                                         string fName       Name of the class being proxied.
                                                                           bool fPointers   Flag to indicate if containee has pointers (key or value)
                                                    TGenCollectionProxy::Method fClear      Method cache for container accessors: clear container
                                                    TGenCollectionProxy::Method fSize       Container accessors: size of container
                                                    TGenCollectionProxy::Method fResize     Container accessors: resize container
                                                    TGenCollectionProxy::Method fFirst      Container accessors: generic iteration: first
                                                    TGenCollectionProxy::Method fNext       Container accessors: generic iteration: next
                                                    TGenCollectionProxy::Method fConstruct  Container accessors: block construct
                                                    TGenCollectionProxy::Method fDestruct   Container accessors: block destruct
                                                    TGenCollectionProxy::Method fFeed       Container accessors: block feed
                                                    TGenCollectionProxy::Method fCollect    Method to collect objects from container
                                                    TGenCollectionProxy::Value* fValue      Descriptor of the container value type
                                                    TGenCollectionProxy::Value* fVal        Descriptor of the Value_type
                                                    TGenCollectionProxy::Value* fKey        Descriptor of the key_type
                                                       ROOT::Environ<char[64]>* fEnv        Address of the currently proxied object
                                                                            int fValOffset  Offset from key to value (in maps)
                                                                            int fValDiff    Offset between two consecutive value_types (memory layout).
          vector<ROOT::Environ<char[64]>*,allocator<ROOT::Environ<char[64]>*> > fProxyList  Stack of recursive proxies
          vector<ROOT::Environ<char[64]>*,allocator<ROOT::Environ<char[64]>*> > fProxyKept  Optimization: Keep proxies once they were created
                                                                            int fSTL_type   STL container type
                                                                     type_info& fTypeinfo   Type information

        public:

          static const enum TGenCollectionProxy:: R__BIT_ISSTRING
          static const enum TGenCollectionProxy:: R__BIT_ISTSTRING
          static const enum TGenCollectionProxy:: kBOOL_t

## Class Description

     TGenCollectionProxy

     Proxy around an arbitrary container, which implements basic
     functionality and iteration.

     In particular this is used to implement splitting and abstract
     element access of any container. Access to compiled code is necessary
     to implement the abstract iteration sequence and functionality like
     size(), clear(), resize(). resize() may be a void operation.

### Inline Functions

                                void ~TGenCollectionProxy()
                TGenCollectionProxy* Initialize() const
                TGenCollectionProxy* InitializeEx()
                                void DeleteItem(bool force, void* ptr) const
                                void CheckFunctions() const
            TVirtualCollectionProxy* Generate() const
                 TGenCollectionProxy TGenCollectionProxy(const TGenCollectionProxy& copy)
                 TGenCollectionProxy TGenCollectionProxy(TCollectionProxy::Info_t typ, size_t iter_size)
                             TClass* GetCollectionClass()
                              UInt_t Sizeof() const
                                void PushProxy(void* objstart)
                                void PopProxy()
                              Bool_t HasPointers() const
                             TClass* GetValueClass()
                                void SetValueClass(TClass* newcl)
                           EDataType GetType()
                               void* At(UInt_t idx)
                                void Clear(const char* opt = "")
                                void Resize(UInt_t n, Bool_t force_delete)
                              UInt_t Size() const
                               void* Allocate(UInt_t n, Bool_t forceDelete)
                                void Commit(void* env)
                                void Streamer(TBuffer& refBuffer)
                                void Streamer(TBuffer& refBuffer, void* pObject, int siz)
                                void operator()(TBuffer& refBuffer, void* pObject)

Author: Markus Frank 28/10/04
Last update: root/cont:$Name: $:$Id: TGenCollectionProxy.h,v 1.8 2005/06/01 15:43:18 pcanal Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *