model_server/dd/src/ddict.h.cxx
// Given a dd element for a class (struct or union), find
// all of its top-level members (data and functions)
//
// (NOTE: It is no longer possible to obtain the methods
// of a class by looking at the children of its dd, since
// these have been detached. Hence two different methods
// are called to obtain the data field and the methods.)
Given a dd element for a class (struct or union), find
all of its top-level members (data and functions)

It is no longer possible to obtain the methods
of a class by looking at the children of its dd, since
these have been detached. Hence two different methods
are called to obtain the data field and the methods.)
Given a dd element for a class ( struct or union ) find all of its top - level members ( data and functions ) It is no longer possible to obtain the methods of a class by looking at the children of its dd since these have been detached . Hence two different methods are called to obtain the data field and the methods . )
void ddElement::class_get_members(objArr& ddArr) {
	Initialize(ddElement::class_get_members);
	children_of_class(ddArr);	
	objArr static_data_members;
	get_loaded_refs_same_file(static_data_members, DD_VAR_DECL);
	Obj* static_data_member;
	ForEach(static_data_member, static_data_members) {
	   bool in_ddArr = false;
	   Obj* data_member;
	   ForEach(data_member, ddArr) {
	      if (data_member == static_data_member) {
		 in_ddArr = true;
		 break;
	      }
	   }
	   if (!in_ddArr) {
	      ddArr.insert_last(static_data_member);
	   }
	}
	get_loaded_refs_same_file(ddArr, DD_FUNC_DECL);
}
void ddElement :: class_get_members ( objArr & ddArr ) { Initialize ( ddElement :: class_get_members ) ; children_of_class ( ddArr ) ; objArr static_data_members ; get_loaded_refs_same_file ( static_data_members , DD_VAR_DECL ) ; Obj * static_data_member ; ForEach ( static_data_member , static_data_members ) { bool in_ddArr = false ; Obj * data_member ; ForEach ( data_member , ddArr ) { if ( data_member == static_data_member ) { in_ddArr = true ; break ; } } if ( ! in_ddArr ) { ddArr . insert_last ( static_data_member ) ; } } get_loaded_refs_same_file ( ddArr , DD_FUNC_DECL ) ; }
Given a dd element for a class (struct or union), find
all of its top-level members (data and functions)
Given a dd element for a class ( struct or union ) find all of its top - level members ( data and functions )
// get fields (member data) // Note: the following is needed to ensure that static data members are // inserted into ddArr exactly once, regardless of whether static data // members are kept as children of the class or not (a decision that // keeps changing, breaking this function each time -- until now!).