[GME-commit] GMESRC/GME/MgaUtil MakeSimpleClosure.cpp,1.2,1.3

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Wed Aug 31 20:43:52 CDT 2005


Update of /project/gme-repository/GMESRC/GME/MgaUtil
In directory escher:/tmp/cvs-serv26682

Modified Files:
	MakeSimpleClosure.cpp 
Log Message:
Mark with guid each object and its dependents (refs, members, connEndpoints).


CVS User: Zoltan Molnar, ISIS (zolmol)

Index: MakeSimpleClosure.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/MgaUtil/MakeSimpleClosure.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** MakeSimpleClosure.cpp	21 Jul 2005 16:56:44 -0000	1.2
--- MakeSimpleClosure.cpp	31 Aug 2005 19:43:50 -0000	1.3
***************
*** 61,64 ****
--- 61,67 ----
  	COMTHROW( obj->get_ObjType( &objtype) );
  
+ 	// now mark the object itself (with a guid), later mark its dependents (ref, mem)
+ 	manageGuid( obj);
+ 
  	switch( objtype)
  	{
***************
*** 70,74 ****
  				COMTHROW( ::QueryInterface( obj, f) );
  				procFolder( f);
- 				manageGuid( obj);
  			}
  			break;
--- 73,76 ----
***************
*** 82,97 ****
  
  				procModel( m);
- 				manageGuid( obj);
  			}
  			break;
  		}
  
! 	case OBJTYPE_ATOM:
  	case OBJTYPE_REFERENCE:
  	case OBJTYPE_CONNECTION:
  	case OBJTYPE_SET:
! 	default: { 
! 				manageGuid( obj);
! 			 }
  	};
  }
--- 84,136 ----
  
  				procModel( m);
  			}
  			break;
  		}
  
! 	case OBJTYPE_ATOM: break;
  	case OBJTYPE_REFERENCE:
+ 		{
+ 			CComObjPtr<IMgaReference> r;
+ 			COMTHROW( ::QueryInterface( obj, r) );
+ 
+ 			// mark its referred object (if any)
+ 			CComObjPtr<IMgaFCO> refd;
+ 			COMTHROW( r->get_Referred( PutOut( refd)));
+ 			manageGuid( CComObjPtr<IMgaObject>( refd));
+ 			break;
+ 		}
  	case OBJTYPE_CONNECTION:
+ 		{
+ 			CComObjPtr<IMgaConnection> c;
+ 			COMTHROW( ::QueryInterface( obj, c) );
+ 			
+ 			CComObjPtrVector<IMgaConnPoint> cps;
+ 			COMTHROW( c->get_ConnPoints( PutOut( cps)));
+ 			for( unsigned int i = 0; i < cps.size(); ++i)
+ 			{
+ 				// mark the endpoint
+ 				CComObjPtr<IMgaFCO> target;
+ 				COMTHROW( cps[i]->get_Target(PutOut(target)) );
+ 				manageGuid( CComObjPtr<IMgaObject>( target));
+ 
+ 				// mark the ref chain
+ 				CComObjPtrVector<IMgaFCO> refs;
+ 				COMTHROW( cps[i]->get_References(PutOut(refs)) );
+ 				for( unsigned int i = 0; i < refs.size(); ++i)
+ 					manageGuid( CComObjPtr<IMgaObject>( refs[i]));
+ 			}
+ 
+ 			break;
+ 		}
  	case OBJTYPE_SET:
! 		{
! 			CComObjPtr<IMgaSet> s;
! 			COMTHROW( ::QueryInterface( obj, s) );
! 			CComObjPtrVector<IMgaFCO> mems;
! 			COMTHROW( s->get_Members( PutOut( mems)));
! 			for( unsigned int i = 0; i < mems.size(); ++i)
! 				manageGuid( CComObjPtr<IMgaObject>( mems[i]));
! 			break;
! 		}
  	};
  }



More information about the GME-commit mailing list