CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FWItemTVirtualCollectionProxyAccessor.h
Go to the documentation of this file.
1 #ifndef Fireworks_Core_FWItemTVirtualCollectionProxyAccessor_h
2 #define Fireworks_Core_FWItemTVirtualCollectionProxyAccessor_h
3 // -*- C++ -*-
4 //
5 // Package: Core
6 // Class : FWItemTVirtualCollectionProxyAccessor
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Sat Oct 18 08:43:45 EDT 2008
19 //
20 
21 // system include files
22 #include "boost/shared_ptr.hpp"
23 
24 // user include files
26 
27 // forward declarations
28 class TVirtualCollectionProxy;
29 
31 
32 public:
33  FWItemTVirtualCollectionProxyAccessor(const TClass* iType,
34  boost::shared_ptr<TVirtualCollectionProxy> iProxy,
35  size_t iOffset=0);
37 
38  // ---------- const member functions ---------------------
39  virtual const void* modelData(int iIndex) const ;
40  virtual const void* data() const;
41  virtual unsigned int size() const;
42  const TClass* modelType() const;
43  const TClass* type() const;
44 
45  bool isCollection() const;
46 
47  // ---------- static member functions --------------------
48 
49  // ---------- member functions ---------------------------
50  void setData(const edm::ObjectWithDict& );
51  void reset();
52 
53 private:
55 
57 
58  // ---------- member data --------------------------------
59  const TClass* m_type;
60  boost::shared_ptr<TVirtualCollectionProxy> m_colProxy; //should be something other than shared_ptr
61  mutable const void * m_data;
62  size_t m_offset;
63 };
64 
65 
66 #endif
FWItemTVirtualCollectionProxyAccessor(const TClass *iType, boost::shared_ptr< TVirtualCollectionProxy > iProxy, size_t iOffset=0)
virtual const void * modelData(int iIndex) const
boost::shared_ptr< TVirtualCollectionProxy > m_colProxy
void setData(const edm::ObjectWithDict &)
override if id of an object should be different than the index
const FWItemTVirtualCollectionProxyAccessor & operator=(const FWItemTVirtualCollectionProxyAccessor &)