Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:41

0001 #ifndef Fireworks_Core_FWItemTVirtualCollectionProxyAccessor_h
0002 #define Fireworks_Core_FWItemTVirtualCollectionProxyAccessor_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWItemTVirtualCollectionProxyAccessor
0007 //
0008 /**\class FWItemTVirtualCollectionProxyAccessor FWItemTVirtualCollectionProxyAccessor.h Fireworks/Core/interface/FWItemTVirtualCollectionProxyAccessor.h
0009 
0010    Description: <one line class summary>
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Sat Oct 18 08:43:45 EDT 2008
0019 //
0020 
0021 // system include files
0022 #include <memory>
0023 
0024 // user include files
0025 #include "Fireworks/Core/interface/FWItemAccessorBase.h"
0026 
0027 // forward declarations
0028 class TVirtualCollectionProxy;
0029 
0030 class FWItemTVirtualCollectionProxyAccessor : public FWItemAccessorBase {
0031 public:
0032   FWItemTVirtualCollectionProxyAccessor(const TClass* iType,
0033                                         std::shared_ptr<TVirtualCollectionProxy> iProxy,
0034                                         size_t iOffset = 0);
0035   ~FWItemTVirtualCollectionProxyAccessor() override;
0036 
0037   // ---------- const member functions ---------------------
0038   const void* modelData(int iIndex) const override;
0039   const void* data() const override;
0040   unsigned int size() const override;
0041   const TClass* modelType() const override;
0042   const TClass* type() const override;
0043 
0044   bool isCollection() const override;
0045 
0046   // ---------- static member functions --------------------
0047 
0048   // ---------- member functions ---------------------------
0049   void setData(const edm::ObjectWithDict&) override;
0050   void reset() override;
0051 
0052   FWItemTVirtualCollectionProxyAccessor(const FWItemTVirtualCollectionProxyAccessor&) = delete;  // stop default
0053 
0054   const FWItemTVirtualCollectionProxyAccessor& operator=(const FWItemTVirtualCollectionProxyAccessor&) =
0055       delete;  // stop default
0056 
0057 private:
0058   // ---------- member data --------------------------------
0059   const TClass* m_type;
0060   std::shared_ptr<TVirtualCollectionProxy> m_colProxy;  //should be something other than shared_ptr
0061   mutable const void* m_data;
0062   size_t m_offset;
0063 };
0064 
0065 #endif