// calling class runs this to activate packcoordinator public void ActivatePackCoordinator( IPackCoordinator packcoordinator ) { if( !packcoordinators.Contains( packcoordinator ) ) { throw new Exception( "PackCoordinatorSelector: pack coordinator " + packcoordinator.ToString() + " not found" ); } if( activecoordinator != packcoordinator ) { logfile.WriteLine( "PackCoordinator selector: changing to coordinator " + packcoordinator.ToString() ); // first disactivate others, then activate new one // the order of operations is important since they will probalby be using GiveORder, and GiveOrder overwrites old orders with new ones foreach( object packcoordinatorobject in packcoordinators ) { IPackCoordinator thispackcoordinator = packcoordinatorobject as IPackCoordinator; if( thispackcoordinator != packcoordinator ) { thispackcoordinator.Disactivate(); } } foreach( object packcoordinatorobject in packcoordinators ) { IPackCoordinator thispackcoordinator = packcoordinatorobject as IPackCoordinator; if( thispackcoordinator == packcoordinator ) { thispackcoordinator.Activate(); } } activecoordinator = packcoordinator; } }
// calling class runs this to activate packcoordinator public void ActivatePackCoordinator(IPackCoordinator packcoordinator) { if (!packcoordinators.Contains(packcoordinator)) { throw new Exception("PackCoordinatorSelector: pack coordinator " + packcoordinator.ToString() + " not found"); } if (activecoordinator != packcoordinator) { logfile.WriteLine("PackCoordinator selector: changing to coordinator " + packcoordinator.ToString()); // first disactivate others, then activate new one // the order of operations is important since they will probalby be using GiveORder, and GiveOrder overwrites old orders with new ones foreach (object packcoordinatorobject in packcoordinators) { IPackCoordinator thispackcoordinator = packcoordinatorobject as IPackCoordinator; if (thispackcoordinator != packcoordinator) { thispackcoordinator.Disactivate(); } } foreach (object packcoordinatorobject in packcoordinators) { IPackCoordinator thispackcoordinator = packcoordinatorobject as IPackCoordinator; if (thispackcoordinator == packcoordinator) { thispackcoordinator.Activate(); } } activecoordinator = packcoordinator; } }
// calling class calls this for each packcoordinator it wants to use public void LoadCoordinator(IPackCoordinator packcoordinator) { if (!packcoordinators.Contains(packcoordinator)) { packcoordinators.Add(packcoordinator); } }
public void DisactivateAll() { if (activecoordinator != null) { logfile.WriteLine("PackCoordinator selector: disactivating all"); foreach (object packcoordinatorobject in packcoordinators) { IPackCoordinator thispackcoordinator = packcoordinatorobject as IPackCoordinator; thispackcoordinator.Disactivate(); } activecoordinator = null; } }
public void DisactivateAll() { if( activecoordinator != null ) { logfile.WriteLine( "PackCoordinator selector: disactivating all" ); foreach( object packcoordinatorobject in packcoordinators ) { IPackCoordinator thispackcoordinator = packcoordinatorobject as IPackCoordinator; thispackcoordinator.Disactivate(); } activecoordinator = null; } }
// calling class calls this for each packcoordinator it wants to use public void LoadCoordinator( IPackCoordinator packcoordinator ) { if( !packcoordinators.Contains( packcoordinator ) ) { packcoordinators.Add( packcoordinator ); } }