00001 00002 #include "Reflex/Object.h" 00003 #include "Reflex/Type.h" 00004 00005 #include "FWCore/Utilities/interface/FunctionWithDict.h" 00006 #include "FWCore/Utilities/interface/ObjectWithDict.h" 00007 #include "FWCore/Utilities/interface/TypeWithDict.h" 00008 00009 namespace edm { 00010 std::string 00011 FunctionWithDict::name() const { 00012 return function_.Name(); 00013 } 00014 00015 std::string 00016 FunctionWithDict::typeName() const {return function_.TypeOf().Name();} 00017 00018 TypeWithDict 00019 FunctionWithDict::typeOf() const { 00020 return (TypeWithDict(function_.TypeOf())); 00021 } 00022 00023 TypeWithDict 00024 FunctionWithDict::returnType() const { 00025 return (TypeWithDict(function_.TypeOf().ReturnType())); 00026 } 00027 00028 TypeWithDict 00029 FunctionWithDict::declaringType() const { 00030 return (TypeWithDict(function_.DeclaringType())); 00031 } 00032 00033 bool 00034 FunctionWithDict::isConst() const { 00035 return function_.IsConst(); 00036 } 00037 00038 bool 00039 FunctionWithDict::isConstructor() const { 00040 return function_.IsConstructor(); 00041 } 00042 00043 bool 00044 FunctionWithDict::isDestructor() const { 00045 return function_.IsDestructor(); 00046 } 00047 00048 bool 00049 FunctionWithDict::isOperator() const { 00050 return function_.IsOperator(); 00051 } 00052 00053 bool 00054 FunctionWithDict::isPublic() const { 00055 return function_.IsPublic(); 00056 } 00057 00058 bool FunctionWithDict::isStatic() const { 00059 return function_.IsStatic(); 00060 } 00061 00062 size_t 00063 FunctionWithDict::functionParameterSize(bool required) const { 00064 return function_.FunctionParameterSize(required); 00065 } 00066 00067 void 00068 FunctionWithDict::invoke(ObjectWithDict const& obj, ObjectWithDict* ret, std::vector<void*> const& values) const { 00069 function_.Invoke(obj.object_, &ret->object_, values); 00070 } 00071 00072 Reflex::Type_Iterator 00073 FunctionWithDict::begin() const { 00074 return function_.TypeOf().FunctionParameter_Begin(); 00075 } 00076 00077 Reflex::Type_Iterator 00078 FunctionWithDict::end() const { 00079 return function_.TypeOf().FunctionParameter_End(); 00080 } 00081 00082 FunctionWithDict::operator bool() const { 00083 return bool(function_); 00084 } 00085 00086 }