Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Package:     Core
0004 // Class  :     FWSimpleProxyHelper
0005 //
0006 // Implementation:
0007 //     <Notes on implementation>
0008 //
0009 // Original Author:  Chris Jones
0010 //         Created:  Tue Dec  2 15:13:22 EST 2008
0011 //
0012 
0013 // system include files
0014 #include <sstream>
0015 #include <cassert>
0016 
0017 #include "FWCore/Reflection/interface/ObjectWithDict.h"
0018 #include "FWCore/Reflection/interface/TypeWithDict.h"
0019 #include "TClass.h"
0020 
0021 // user include files
0022 #include "Fireworks/Core/interface/FWSimpleProxyHelper.h"
0023 #include "Fireworks/Core/interface/FWEventItem.h"
0024 
0025 //
0026 // constants, enums and typedefs
0027 //
0028 
0029 //
0030 // static data member definitions
0031 //
0032 
0033 //
0034 // constructors and destructor
0035 //
0036 FWSimpleProxyHelper::FWSimpleProxyHelper(const std::type_info& iType) : m_itemType(&iType), m_objectOffset(0) {}
0037 
0038 // FWSimpleProxyHelper::FWSimpleProxyHelper(const FWSimpleProxyHelper& rhs)
0039 // {
0040 //    // do actual copying here;
0041 // }
0042 
0043 //FWSimpleProxyHelper::~FWSimpleProxyHelper()
0044 //{
0045 //}
0046 
0047 //
0048 // assignment operators
0049 //
0050 // const FWSimpleProxyHelper& FWSimpleProxyHelper::operator=(const FWSimpleProxyHelper& rhs)
0051 // {
0052 //   //An exception safe implementation is
0053 //   FWSimpleProxyHelper temp(rhs);
0054 //   swap(rhs);
0055 //
0056 //   return *this;
0057 // }
0058 
0059 //
0060 // member functions
0061 //
0062 void FWSimpleProxyHelper::itemChanged(const FWEventItem* iItem) {
0063   if (nullptr != iItem) {
0064     edm::TypeWithDict baseType(*m_itemType);
0065     edm::TypeWithDict mostDerivedType(*(iItem->modelType()->GetTypeInfo()));
0066     // The - sign is there because this is the address of a derived object minus the address of the base object.
0067     m_objectOffset = -mostDerivedType.getBaseClassOffset(baseType);
0068   }
0069 }
0070 
0071 //
0072 // static member functions
0073 //