CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Fireworks/Core/interface/FWItemAccessorRegistry.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWItemAccessorRegistry_h
00002 #define Fireworks_Core_FWItemAccessorRegistry_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWItemAccessorRegistry 
00007 //
00018 //
00019 // Original Author:  Giulio Eulisse 
00020 //         Created:  Thu Feb 18 00:00:00 EDT 2010
00021 // $Id: FWItemAccessorRegistry.h,v 1.2 2010/03/01 09:43:01 eulisse Exp $
00022 //
00023 
00024 // system include files
00025 
00026 // user include files
00027 #include "Fireworks/Core/interface/register_itemaccessorbase_macro.h"
00028 #include "FWCore/PluginManager/interface/PluginFactory.h"
00029 
00030 // forward declarations
00031 
00032 class FWItemAccessorBase;
00033 class TClass;
00034 
00035 typedef FWItemAccessorBase* (IAccessorCreator)(const TClass *);
00036 typedef edmplugin::PluginFactory<IAccessorCreator> FWItemAccessorRegistry;
00037 
00038 #define REGISTER_FWITEMACCESSOR(_name_,_type_,_purpose_) \
00039    DEFINE_FWITEMACCESSOR_METHODS(_name_,_type_,_purpose_); \
00040    DEFINE_EDM_PLUGIN(FWItemAccessorRegistry,_name_,_name_::classRegisterTypeName()+"@"+_name_::classPurpose()+"@" # _name_)
00041 
00042 #define REGISTER_TEMPLATE_FWITEMACCESSOR(_name_,_type_,_purpose_) \
00043    DEFINE_TEMPLATE_FWITEMACCESSOR_METHODS(_name_,_type_,_purpose_); \
00044    DEFINE_EDM_PLUGIN(FWItemAccessorRegistry,_name_,_name_::classRegisterTypeName()+"@"+_name_::classPurpose()+"@" # _name_)
00045 
00046 #endif