Go to the documentation of this file.00001
00002
00003
00004
00005
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <memory>
00023 #include "boost/shared_ptr.hpp"
00024
00025
00026 #include "FWCore/Framework/interface/ModuleFactory.h"
00027 #include "FWCore/Framework/interface/ESProducer.h"
00028
00029 #include "FWCore/Framework/interface/ESHandle.h"
00030
00031 @perl if( 1 lt scalar( @::datatypes ) ) {$result="#include \"FWCore/Framework/interface/ESProducts.h\""; } @\perl
00032
00033
00034
00035
00036
00037
00038 class prodname : public edm::ESProducer {
00039 public:
00040 prodname(const edm::ParameterSet&);
00041 ~prodname();
00042
00043 typedef @perl if( 1 eq scalar( @::datatypes ) ) { $result="boost::shared_ptr<$::datatypes[0]>"; } else { $result="edm::ESProducts<"; $line = 0; foreach $type ( @::datatypes ) { if ($line) { $result = "$result, "; } $result= "$result boost::shared_ptr<$type> "; $line =1;} $result="$result>"; } @\perl ReturnType;
00044
00045 ReturnType produce(const recordname&);
00046 private:
00047
00048 };
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 prodname::prodname(const edm::ParameterSet& iConfig)
00062 {
00063
00064
00065 setWhatProduced(this);
00066
00067
00068 }
00069
00070
00071 prodname::~prodname()
00072 {
00073
00074
00075
00076
00077 }
00078
00079
00080
00081
00082
00083
00084
00085 prodname::ReturnType
00086 prodname::produce(const recordname& iRecord)
00087 {
00088 using namespace edm::es;
00089 @perl $result=""; foreach $type (@::datatypes) {$result ="$result boost::shared_ptr<$type> p$type ;\n";} @\perl
00090
00091 return @perl if( 1 eq scalar( @::datatypes ) ) { $result="p$::datatypes[0]" } else { $result="products("; $line = 0; foreach $type ( @::datatypes ) { if ($line) { $result = "$result,"; } $result= "$result p$type"; $line +=1; } $result="$result)"; } @\perl ;
00092 }
00093
00094
00095 DEFINE_FWK_EVENTSETUP_MODULE(prodname);