#include "pp.h" void Cd_graph::freedfs( int from ) { DEM_TRACE("Cd_graph","void Cd_graph::freedfs(int from)"); // prefix class wrappers assert(matrix); matrix->freedfs(from); // suffix class wrappers } void SCC_component_List::freedfs( int from ) { DEM_TRACE("SCC_component_List","void SCC_component_List::freedfs(int from)"); // prefix class wrappers SCC_component_list_iterator next(*this); SCC_component* each; while ( each = next() ) each->freedfscomp(from,this); // suffix class wrappers } void SCC_component::freedfscomp( int from,SCC_component_List* components ) { DEM_TRACE("SCC_component","void SCC_component::freedfscomp(int from,SCC_component_List* components)"); // prefix class wrappers static DemString* markdfs = new DemString("propagate"); if (from == (scc->get_val())) if (!mark->g_equal(markdfs)) { if (mark) mark->g_delete(); mark = (DemString*)markdfs->g_copy(); edges->freedfsedges(markdfs,components); } // suffix class wrappers } // SCC_component_Edges = "*sccedge*" // DemNumber // DemString // *l. void SCC_component_Edges::freedfsedges( DemString* markdfs,SCC_component_List* components ) { DEM_TRACE("SCC_component_Edges","void SCC_component_Edges::freedfsedges(DemString* markdfs,SCC_component_List* components)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers if (mark) mark->g_delete(); mark = (DemString*)markdfs->g_copy(); components->freedfs(scc->get_val()); // outgoing calls // suffix class wrappers // assignments for carrying out } // SCC_component_Edges_List ~ { SCC_component_Edges }. . void SCC_component_Edges_List::freedfsedges( DemString* markdfs,SCC_component_List* components ) { DEM_TRACE("SCC_component_Edges_List","void SCC_component_Edges_List::freedfsedges(DemString* markdfs,SCC_component_List* components)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls SCC_component_Edges_list_iterator next_SCC_component_Edges(*this); SCC_component_Edges* each_SCC_component_Edges; while ( each_SCC_component_Edges = next_SCC_component_Edges() ) { // repetition edge prefix wrappers each_SCC_component_Edges->freedfsedges( markdfs , components ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out }