Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Fireworks_Core_FWItemAccessorRegistry_h
0002 #define Fireworks_Core_FWItemAccessorRegistry_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWItemAccessorRegistry
0007 //
0008 /**\class FWItemAccessorRegistry FWItemAccessorRegistry.h Fireworks/Core/interface/FWItemAccessorRegistry.h
0009 
0010    Description: Registry for all th FWItemAccessorBase derived classes that can be loaded via the
0011                 plugin manager. Those classes are to be used to have specialized versions of
0012                 the accessors for objects that root does not consider as collections. 
0013 
0014    Usage:
0015     <usage>
0016 
0017  */
0018 //
0019 // Original Author:  Giulio Eulisse
0020 //         Created:  Thu Feb 18 00:00:00 EDT 2010
0021 //
0022 
0023 // system include files
0024 
0025 // user include files
0026 #include "Fireworks/Core/interface/register_itemaccessorbase_macro.h"
0027 #include "FWCore/PluginManager/interface/PluginFactory.h"
0028 
0029 // forward declarations
0030 
0031 class FWItemAccessorBase;
0032 class TClass;
0033 
0034 typedef FWItemAccessorBase*(IAccessorCreator)(const TClass*);
0035 typedef edmplugin::PluginFactory<IAccessorCreator> FWItemAccessorRegistry;
0036 
0037 #define REGISTER_FWITEMACCESSOR(_name_, _type_, _purpose_)  \
0038   DEFINE_FWITEMACCESSOR_METHODS(_name_, _type_, _purpose_); \
0039   DEFINE_EDM_PLUGIN(                                        \
0040       FWItemAccessorRegistry, _name_, _name_::classRegisterTypeName() + "@" + _name_::classPurpose() + "@" #_name_)
0041 
0042 #define REGISTER_TEMPLATE_FWITEMACCESSOR(_name_, _type_, _purpose_)  \
0043   DEFINE_TEMPLATE_FWITEMACCESSOR_METHODS(_name_, _type_, _purpose_); \
0044   DEFINE_EDM_PLUGIN(                                                 \
0045       FWItemAccessorRegistry, _name_, _name_::classRegisterTypeName() + "@" + _name_::classPurpose() + "@" #_name_)
0046 
0047 #endif