40 for (
unsigned int i=0;
i<objType.BaseSize();
i++){
44 for (
unsigned int j=0;
j<baseType.DataMemberSize();
j++){
45 Reflex::Member dataMember = baseType.DataMemberAt(
j);
46 DataElement& dataMemberElement = dataElement.addChild( dataMember.Offset(), base.OffsetFP() );
48 if ( dataMember.IsTransient() || dataMember.IsStatic() )
continue;
51 if ( ! dataMemberType ) {
52 throwException(
"Missing dictionary information for data member \"" +
53 dataMember.Name() +
"\" of class \"" +
54 baseType.Name(Reflex::SCOPED|Reflex::FINAL) +
"\"",
55 "ObjectStreamerBase::buildBaseDataMembers" );
60 std::string scope = declaringType.Name(Reflex::SCOPED|Reflex::FINAL);
66 MappingElement& dataMemberMapping = iDataMemberMapping->second;
68 throwException(
"Data member \""+dataMemberName +
"\" type \"" + dataMemberType.Name(Reflex::SCOPED|Reflex::FINAL) +
69 "\" does not match with the expected type in the mapping \""+dataMemberMapping.variableType()+
"\".",
70 "ObjectStreamerBase::buildBaseDataMembers" );
72 processDataMember( dataMemberElement, relationalData, dataMemberType, dataMemberMapping, operationBuffer );
77 "ObjectStreamerBase::buildBaseDataMembers" );
static std::string scopedVariableName(const std::string &variableName, const std::string &scope)
variable name manipulation
const std::string & variableName() const
bool isLoosePersistencyDataMember(const Reflex::Member &dataMember)
MappingElement & m_mapping
bool checkMappedType(const Reflex::Type &type, const std::string &mappedTypeName)
virtual void processDataMember(DataElement &dataElement, IRelationalData &relationalData, Reflex::Type &dataMemberType, MappingElement &dataMemberMapping, RelationalBuffer *operationBuffer)=0
void buildBaseDataMembers(DataElement &dataElement, IRelationalData &relationalData, const Reflex::Type &objType, RelationalBuffer *operationBuffer)
iterator find(const std::string &key)
Retrieves a sub-element.
std::map< std::string, MappingElement >::iterator iterator
Iterator definition.
Reflex::Type resolvedType(const Reflex::Type &typ)
iterator end()
Returns an iterator in the end of the sequence.
void throwException(const std::string &message, const std::string &methodName)