FWItemAccessorBase

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#ifndef Fireworks_Core_FWItemAccessorBase_h
#define Fireworks_Core_FWItemAccessorBase_h
// -*- C++ -*-
//
// Package:     Core
// Class  :     FWItemAccessorBase
//
/**\class FWItemAccessorBase FWItemAccessorBase.h Fireworks/Core/interface/FWItemAccessorBase.h

   Description: Base class used to access data stored in an edm::EDProduct

   Usage:
    <usage>

 */
//
// Original Author:  Chris Jones
//         Created:  Sat Oct 18 08:14:21 EDT 2008
//

// system include files
#include <typeinfo>

// user include files

// forward declarations
class TClass;
namespace edm {
  class EDProduct;
  class ObjectWithDict;
}  // namespace edm

class FWItemAccessorBase {
public:
  FWItemAccessorBase();
  virtual ~FWItemAccessorBase();

  // ---------- const member functions ---------------------
  virtual const void* modelData(int iIndex) const = 0;
  virtual const void* data() const = 0;
  virtual unsigned int size() const = 0;
  virtual const TClass* modelType() const = 0;
  virtual const TClass* type() const = 0;

  virtual bool isCollection() const = 0;

  ///override if id of an object should be different than the index
  //virtual std::string idForIndex(int iIndex) const;
  // ---------- member functions ---------------------------
  virtual void setData(const edm::ObjectWithDict&) = 0;
  virtual void reset() = 0;

private:
  //FWItemAccessorBase(const FWItemAccessorBase&); // stop default

  //const FWItemAccessorBase& operator=(const FWItemAccessorBase&); // stop default

  // ---------- member data --------------------------------
};

#endif