Go to the documentation of this file.00001 #ifndef Fireworks_Core_FWHandle_h
00002 #define Fireworks_Core_FWHandle_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(__CINT__) && !defined(__MAKECINT__)
00024
00025 #include "DataFormats/Common/interface/Wrapper.h"
00026 #include "Fireworks/Core/interface/FWEventItem.h"
00027 #endif
00028
00029
00030
00031
00032
00033 class FWHandle
00034 {
00035
00036 public:
00037 FWHandle() : data(0) {
00038 }
00039
00040
00041
00042 const T* get() const {
00043 return data_;
00044 }
00045
00046 const T* operator->() const {
00047 return data_;
00048 }
00049
00050 const T& operator*() const {
00051 return *data_;
00052 }
00053
00054
00055
00056 void getFrom(const FWEventItem& iItem) {
00057 data_ = reinterpet_cast<const T*>(
00058 iItem.data(edm::Wrapper<T>::productTypeInfo())
00059 );
00060 }
00061
00062 private:
00063
00064
00065
00066
00067
00068 const T* data_;
00069
00070 };
00071
00072
00073 #endif