CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/Fireworks/Core/interface/FWItemAccessorBase.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWItemAccessorBase_h
00002 #define Fireworks_Core_FWItemAccessorBase_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWItemAccessorBase
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Sat Oct 18 08:14:21 EDT 2008
00019 // $Id: FWItemAccessorBase.h,v 1.5 2010/07/23 16:02:54 eulisse Exp $
00020 //
00021 
00022 // system include files
00023 #include <typeinfo>
00024 
00025 // user include files
00026 
00027 // forward declarations
00028 class TClass;
00029 namespace edm {
00030    class EDProduct;
00031 }
00032 
00033 namespace Reflex {
00034    class Object;
00035 }
00036 
00037 class FWItemAccessorBase {
00038 
00039 public:
00040    FWItemAccessorBase();
00041    virtual ~FWItemAccessorBase();
00042 
00043    // ---------- const member functions ---------------------
00044    virtual const void* modelData(int iIndex) const = 0;
00045    virtual const void* data() const = 0;
00046    virtual unsigned int size() const = 0;
00047    virtual const TClass* modelType() const = 0;
00048    virtual const TClass* type() const = 0;
00049 
00050    virtual bool isCollection() const = 0;
00051 
00053    //virtual std::string idForIndex(int iIndex) const;
00054    // ---------- member functions ---------------------------
00055    virtual void setData(const Reflex::Object& )=0;
00056    virtual void reset() = 0;
00057 
00058 private:
00059    //FWItemAccessorBase(const FWItemAccessorBase&); // stop default
00060 
00061    //const FWItemAccessorBase& operator=(const FWItemAccessorBase&); // stop default
00062 
00063    // ---------- member data --------------------------------
00064 
00065 };
00066 
00067 
00068 #endif