CMS 3D CMS Logo

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 <memory>
23 
24 // user include files
26 
27 // forward declarations
28 class TVirtualCollectionProxy;
29 
31 
32 public:
33  FWItemTVirtualCollectionProxyAccessor(const TClass* iType,
34  std::shared_ptr<TVirtualCollectionProxy> iProxy,
35  size_t iOffset=0);
37 
38  // ---------- const member functions ---------------------
39  const void* modelData(int iIndex) const override ;
40  const void* data() const override;
41  unsigned int size() const override;
42  const TClass* modelType() const override;
43  const TClass* type() const override;
44 
45  bool isCollection() const override;
46 
47  // ---------- static member functions --------------------
48 
49  // ---------- member functions ---------------------------
50  void setData(const edm::ObjectWithDict& ) override;
51  void reset() override;
52 
53 private:
55 
57 
58  // ---------- member data --------------------------------
59  const TClass* m_type;
60  std::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
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
const FWItemTVirtualCollectionProxyAccessor & operator=(const FWItemTVirtualCollectionProxyAccessor &)=delete
const void * modelData(int iIndex) const override
void setData(const edm::ObjectWithDict &) override
override if id of an object should be different than the index
FWItemTVirtualCollectionProxyAccessor(const TClass *iType, std::shared_ptr< TVirtualCollectionProxy > iProxy, size_t iOffset=0)