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 public:
32  FWItemTVirtualCollectionProxyAccessor(const TClass* iType,
33  std::shared_ptr<TVirtualCollectionProxy> iProxy,
34  size_t iOffset = 0);
36 
37  // ---------- const member functions ---------------------
38  const void* modelData(int iIndex) const override;
39  const void* data() const override;
40  unsigned int size() const override;
41  const TClass* modelType() const override;
42  const TClass* type() const override;
43 
44  bool isCollection() const override;
45 
46  // ---------- static member functions --------------------
47 
48  // ---------- member functions ---------------------------
49  void setData(const edm::ObjectWithDict&) override;
50  void reset() override;
51 
53 
55  delete; // stop default
56 
57 private:
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 #endif
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
const void * modelData(int iIndex) const override
const FWItemTVirtualCollectionProxyAccessor & operator=(const FWItemTVirtualCollectionProxyAccessor &)=delete
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)