94 for (
auto const & member : members) {
96 DataElement& dataMemberElement = dataElement.addChild( dataMember.offset(), 0 );
104 if ( dataMember.isTransient() || dataMember.isStatic() )
continue;
108 if ( ! dataMemberType ) {
109 throwException(
"Missing dictionary information for data member \"" +
110 dataMember.name() +
"\" of class \"" +
112 "ObjectStreamerBase::buildDataMembers" );
123 MappingElement& dataMemberMapping = idataMemberMapping->second;
126 "\" does not match with the expected type in the mapping \""+dataMemberMapping.variableType()+
"\".",
127 "ObjectStreamerBase::buildDataMembers" );
129 processDataMember( dataMemberElement, relationalData, dataMemberType, dataMemberMapping, operationBuffer );
134 "ObjectStreamerBase::buildDataMembers" );
edm::TypeWithDict resolvedType(const edm::TypeWithDict &typ)
bool isLoosePersistencyDataMember(const edm::MemberWithDict &dataMember)
static std::string scopedVariableName(const std::string &variableName, const std::string &scope)
variable name manipulation
const std::string & variableName() const
MappingElement & m_mapping
virtual void processDataMember(DataElement &dataElement, IRelationalData &relationalData, edm::TypeWithDict &dataMemberType, MappingElement &dataMemberMapping, RelationalBuffer *operationBuffer)=0
std::string cppName() const
bool checkMappedType(const edm::TypeWithDict &type, const std::string &mappedTypeName)
iterator find(const std::string &key)
Retrieves a sub-element.
std::map< std::string, MappingElement >::iterator iterator
Iterator definition.
void buildBaseDataMembers(DataElement &dataElement, IRelationalData &relationalData, const edm::TypeWithDict &objType, RelationalBuffer *operationBuffer)
edm::TypeWithDict m_objectType
void throwException(const std::string &message, const std::string &methodName) __attribute__((noreturn))
iterator end()
Returns an iterator in the end of the sequence.