Example #1
0
void LinkData::Execute (void)
{
	Link_Nodes link_node_rec;

	//---- read the data service ----

	Data_Service::Execute ();

	//---- allocate link node data ----

	link_node_rec.link = 0;
	link_node_rec.nodes.clear ();

	link_node_array.assign (link_array.size (), link_node_rec);

	//---- generate a node map ----

	if (node_map_flag) {
		Read_Node_Map ();
	}
	if (input_flag) {
		Read_Node_File ();
	}

	//---- read the link node list file ----

	if (link_node_flag) {
		Read_Link_Nodes ();
	}

	//--- create link data structures ----

	Create_Link_Map ();

	//---- read the directional data file ----

	Read_Dir_Data ();

	//---- write the link data file ----

	if (data_flag) {
		Write_Dir_Data ();
	}
	if (new_map_flag) {
		Write_Node_Map ();
	}
	if (new_link_node_flag) {
		Write_Link_Nodes ();
	}
	Print (2, "Number of Link Node Equivalence Records = ") << nequiv;
	Print (1, "Number of From-To Link Combinations = ") << nab;
	Print (1, "Number of Directional Data Records = ") << ndir;
	Print (1, "Number of Link Data Records Written = ") << nlink;

	Exit_Stat (DONE);
}
Example #2
0
void TPPlusRoute::Execute (void)
{
	int old_routes, old_nodes;

	//---- read the network ----

	Network_Service::Execute ();

	//---- check the input route numbers ----

	if (input_flag) {
		Route_Data *route_ptr = route_data.Last_Key ();

		if (route_ptr != NULL) {
			if (route_id <= route_ptr->Route ()) {
				route_id = ((route_ptr->Route () / 100) + 1) * 100;
			}
		}
		old_routes = route_data.Num_Records ();
		old_nodes = route_data.Num_Nodes ();
	} else {
		old_routes = old_nodes = 0;
	}

	//---- read the tpplus node map file ----

	if (map_flag) {
		Read_Node_Map ();
	}

	//---- read the tpplus line files ----

	Read_Line ();

	//---- write the route header and nodes ----

	Write_Route ();

	//---- print the results ----

	Break_Check (4);
	Write (2, "Number of Route Header Records = %d", nroute);
	if (old_routes > 0) Write (0, " (%d new)", (nroute - old_routes));

	Write (1, "Number of Route Nodes Records = %d", nnodes);
	if (old_nodes > 0) Write (0, " (%d new)", (nnodes - old_nodes));

	if (num_match > 0) Write (1, "Number of Matched Routes = %d", num_match);

	Exit_Stat (DONE);
}
Example #3
0
void CoordMatch::Execute (void)
{
	//---- read the network ----

	Network_Service::Execute ();

	//---- read the reference node file ----

	if (ref_node_flag) {
		Read_Reference ();
	}

	//---- read the node map file ----

	if (node_map_flag) {
		Read_Node_Map ();
	} else {
		Make_Node_Map ();
	}

	//---- match other reference nodes ----

	if (new_map_flag || replace_flag) {
		Expand_Node_Map ();
	}

	//---- convert the nodes ----

	Adjust_Nodes ();

	//---- print the results ----

	Break_Check (4);
	Write (2, "Number of New Node Records = %d", num_new_nodes);
	Write (1, "Number of New Node Map Records = %d", num_new_maps);

	Exit_Stat (DONE);
}