2019-04-12 16:47:00 +03:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
< title > 27/pc< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
< link href = "inweb.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< / head >
< body >
<!-- Weave of '27/hl' generated by 7 -->
< ul class = "crumbs" > < li > < a href = "../webs.html" > ★ < / a > < / li > < li > < a href = "index.html" > core< / a > < / li > < li > < a href = "index.html#27" > Chapter 27: Bridge to Inter Module< / a > < / li > < li > < b > Hierarchy Locations< / b > < / li > < / ul > < p class = "inwebparagraph" > < a id = "SP1" > < / a > < b > § 1. < / b > < / p >
< pre class = "display" >
< span class = "reserved" > typedef< / span > < span class = "plain" > < / span > < span class = "reserved" > struct< / span > < span class = "plain" > < / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > {< / span >
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > access_number< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > struct< / span > < span class = "plain" > < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > access_name< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > struct< / span > < span class = "plain" > < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > function_package_name< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > struct< / span > < span class = "plain" > < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > datum_package_name< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > struct< / span > < span class = "plain" > < / span > < span class = "reserved" > package_request< / span > < span class = "plain" > *< / span > < span class = "identifier" > package< / span > < span class = "plain" > ;< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > exotic_package_identifier< / span > < span class = "plain" > ;< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > struct< / span > < span class = "plain" > < / span > < span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "identifier" > equates_to_iname< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > MEMORY_MANAGEMENT< / span >
< span class = "plain" > } < / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > ;< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::new< / span > < span class = "plain" > (< / span > < span class = "reserved" > void< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "identifier" > CREATE< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = -1;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > function_package_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > datum_package_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > exotic_package_identifier< / span > < span class = "plain" > = -1;< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_in< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "reserved" > package_request< / span > < span class = "plain" > *< / span > < span class = "identifier" > P< / span > < span class = "plain" > ) {< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "functiontext" > HierarchyLocations::new< / span > < span class = "plain" > ();< / span >
2019-04-12 16:47:00 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "identifier" > P< / span > < span class = "plain" > ;< / span >
2019-04-12 18:30:28 +03:00
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_in_exotic< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > x< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "functiontext" > HierarchyLocations::new< / span > < span class = "plain" > ();< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > exotic_package_identifier< / span > < span class = "plain" > = < / span > < span class = "identifier" > x< / span > < span class = "plain" > ;< / span >
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_as< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "identifier" > iname< / span > < span class = "plain" > ) {< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "functiontext" > HierarchyLocations::new< / span > < span class = "plain" > ();< / span >
2019-04-12 16:47:00 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "identifier" > iname< / span > < span class = "plain" > -< / span > < span class = "element" > > eventual_owner< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "identifier" > iname< / span > < span class = "plain" > ;< / span >
2019-04-12 18:30:28 +03:00
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_function< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > call_name< / span > < span class = "plain" > , < / span > < span class = "reserved" > package_request< / span > < span class = "plain" > *< / span > < span class = "identifier" > P< / span > < span class = "plain" > ) {< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "identifier" > CREATE< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
2019-04-12 18:30:28 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > call_name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > function_package_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "identifier" > P< / span > < span class = "plain" > ;< / span >
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_function_in_exotic< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > call_name< / span > < span class = "plain" > , < / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > x< / span > < span class = "plain" > ) {< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "identifier" > CREATE< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > call_name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > function_package_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
2019-04-12 18:30:28 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > exotic_package_identifier< / span > < span class = "plain" > = < / span > < span class = "identifier" > x< / span > < span class = "plain" > ;< / span >
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_datum< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > datum_name< / span > < span class = "plain" > , < / span > < span class = "reserved" > package_request< / span > < span class = "plain" > *< / span > < span class = "identifier" > P< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "identifier" > CREATE< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > datum_name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > datum_package_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "identifier" > P< / span > < span class = "plain" > ;< / span >
2019-04-12 18:30:28 +03:00
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::make_datum_in_exotic< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > datum_name< / span > < span class = "plain" > , < / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > x< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > = < / span > < span class = "identifier" > CREATE< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > = < / span > < span class = "identifier" > id< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > datum_name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > datum_package_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Str::duplicate< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > exotic_package_identifier< / span > < span class = "plain" > = < / span > < span class = "identifier" > x< / span > < span class = "plain" > ;< / span >
< span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrls_indexed_by_id< / span > < span class = "plain" > [< / span > < span class = "constant" > MAX_HL< / span > < span class = "plain" > ];< / span >
< span class = "identifier" > dictionary< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrls_indexed_by_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > nrls_created< / span > < span class = "plain" > = < / span > < span class = "identifier" > FALSE< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > HierarchyLocations::create_nrls< / span > < span class = "plain" > (< / span > < span class = "reserved" > void< / span > < span class = "plain" > ) {< / span >
< span class = "identifier" > nrls_created< / span > < span class = "plain" > = < / span > < span class = "identifier" > TRUE< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > for< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > i< / span > < span class = "plain" > =0; < / span > < span class = "identifier" > i< / span > < span class = "plain" > < < / span > < span class = "constant" > MAX_HL< / span > < span class = "plain" > ; < / span > < span class = "identifier" > i< / span > < span class = "plain" > ++) < / span > < span class = "identifier" > nrls_indexed_by_id< / span > < span class = "plain" > [< / span > < span class = "identifier" > i< / span > < span class = "plain" > ] = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > nrls_indexed_by_name< / span > < span class = "plain" > = < / span > < span class = "identifier" > Dictionaries::new< / span > < span class = "plain" > (512, < / span > < span class = "identifier" > FALSE< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Hierarchy::establish< / span > < span class = "plain" > ();< / span >
< span class = "plain" > }< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > HierarchyLocations::index< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_created< / span > < span class = "plain" > == < / span > < span class = "identifier" > FALSE< / span > < span class = "plain" > ) < / span > < span class = "functiontext" > HierarchyLocations::create_nrls< / span > < span class = "plain" > ();< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > > = 0) < / span > < span class = "identifier" > nrls_indexed_by_id< / span > < span class = "plain" > [< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > ] = < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > Dictionaries::create< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_indexed_by_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > );< / span >
< span class = "identifier" > Dictionaries::write_value< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_indexed_by_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > , (< / span > < span class = "reserved" > void< / span > < span class = "plain" > *) < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::find< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > id< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_created< / span > < span class = "plain" > == < / span > < span class = "identifier" > FALSE< / span > < span class = "plain" > ) < / span > < span class = "functiontext" > HierarchyLocations::create_nrls< / span > < span class = "plain" > ();< / span >
< span class = "reserved" > if< / span > < span class = "plain" > ((< / span > < span class = "identifier" > id< / span > < span class = "plain" > < 0) || (< / span > < span class = "identifier" > id< / span > < span class = "plain" > > = < / span > < span class = "constant" > MAX_HL< / span > < span class = "plain" > ) || (< / span > < span class = "identifier" > nrls_indexed_by_id< / span > < span class = "plain" > [< / span > < span class = "identifier" > id< / span > < span class = "plain" > ] == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ))< / span >
< span class = "identifier" > internal_error< / span > < span class = "plain" > (< / span > < span class = "string" > "bad nrl ID"< / span > < span class = "plain" > );< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "functiontext" > HierarchyLocations::nrl_to_iname< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_indexed_by_id< / span > < span class = "plain" > [< / span > < span class = "identifier" > id< / span > < span class = "plain" > ]);< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::find_by_name< / span > < span class = "plain" > (< / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > Str::len< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > ) == 0) < / span > < span class = "identifier" > internal_error< / span > < span class = "plain" > (< / span > < span class = "string" > "bad nrl name"< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_created< / span > < span class = "plain" > == < / span > < span class = "identifier" > FALSE< / span > < span class = "plain" > ) < / span > < span class = "functiontext" > HierarchyLocations::create_nrls< / span > < span class = "plain" > ();< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > Dictionaries::find< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_indexed_by_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > name< / span > < span class = "plain" > ))< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "functiontext" > HierarchyLocations::nrl_to_iname< / span > < span class = "plain" > (< / span >
< span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > *)< / span >
< span class = "identifier" > Dictionaries::read_value< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrls_indexed_by_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > name< / span > < span class = "plain" > ));< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::function< / span > < span class = "plain" > (< / span > < span class = "reserved" > package_request< / span > < span class = "plain" > *< / span > < span class = "identifier" > R< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > trans< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "identifier" > iname< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Packaging::function< / span > < span class = "plain" > (< / span > < span class = "functiontext" > InterNames::one_off< / span > < span class = "plain" > (< / span > < span class = "identifier" > name< / span > < span class = "plain" > , < / span > < span class = "identifier" > R< / span > < span class = "plain" > ), < / span > < span class = "identifier" > R< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > trans< / span > < span class = "plain" > ) < / span > < span class = "identifier" > Inter::Symbols::set_translate< / span > < span class = "plain" > (< / span > < span class = "functiontext" > InterNames::to_symbol< / span > < span class = "plain" > (< / span > < span class = "identifier" > iname< / span > < span class = "plain" > ), < / span > < span class = "identifier" > trans< / span > < span class = "plain" > );< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > iname< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > inter_name< / span > < span class = "plain" > *< / span > < span class = "functiontext" > HierarchyLocations::nrl_to_iname< / span > < span class = "plain" > (< / span > < span class = "reserved" > named_resource_location< / span > < span class = "plain" > *< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ) {< / span >
2019-04-12 18:30:28 +03:00
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > exotic_package_identifier< / span > < span class = "plain" > > = 0)< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Hierarchy::exotic_package< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > exotic_package_identifier< / span > < span class = "plain" > );< / span >
< span class = "reserved" > else< / span > < span class = "plain" > < / span > < span class = "identifier" > internal_error< / span > < span class = "plain" > (< / span > < span class = "string" > "package can't be found'"< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
2019-04-12 16:47:00 +03:00
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > == < / span > < span class = "functiontext" > Packaging::request_template< / span > < span class = "plain" > ()) {< / span >
< span class = "reserved" > packaging_state< / span > < span class = "plain" > < / span > < span class = "identifier" > save< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Packaging::enter< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "functiontext" > InterNames::one_off< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Packaging::request_template< / span > < span class = "plain" > ());< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > -< / span > < span class = "element" > > symbol< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Emit::extern< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > K_value< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Packaging::exit< / span > < span class = "plain" > (< / span > < span class = "identifier" > save< / span > < span class = "plain" > );< / span >
2019-04-12 18:30:28 +03:00
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > < / span > < span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > Str::len< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > function_package_name< / span > < span class = "plain" > ) > 0) {< / span >
2019-04-12 16:47:00 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Packaging::function_text< / span > < span class = "plain" > (< / span >
< span class = "functiontext" > InterNames::one_off< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > function_package_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > ),< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > ,< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > );< / span >
2019-04-12 18:30:28 +03:00
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > < / span > < span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > Str::len< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > datum_package_name< / span > < span class = "plain" > ) > 0) {< / span >
2019-04-12 16:47:00 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Packaging::datum_text< / span > < span class = "plain" > (< / span >
< span class = "functiontext" > InterNames::one_off< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > datum_package_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > ),< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > ,< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > );< / span >
2019-04-12 18:30:28 +03:00
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > < / span > < span class = "reserved" > if< / span > < span class = "plain" > ((< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > ) & & (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > )) {< / span >
2019-04-12 16:47:00 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "functiontext" > InterNames::one_off< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_name< / span > < span class = "plain" > , < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
2019-04-12 18:30:28 +03:00
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Hierarchy::post_process< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > access_number< / span > < span class = "plain" > , < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > );< / span >
< span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > package< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Packaging::home_of< / span > < span class = "plain" > (< / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > );< / span >
2019-04-12 16:47:00 +03:00
< span class = "plain" > }< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > nrl< / span > < span class = "plain" > -< / span > < span class = "element" > > equates_to_iname< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::new appears nowhere else.< / p >
< p class = "endnote" > The function HierarchyLocations::make_in is used in 27/hr (< a href = "27-hr.html#SP2_2" > § 2.2< / a > , < a href = "27-hr.html#SP2_4" > § 2.4< / a > , < a href = "27-hr.html#SP2_6" > § 2.6< / a > , < a href = "27-hr.html#SP2_8" > § 2.8< / a > , < a href = "27-hr.html#SP2_10" > § 2.10< / a > , < a href = "27-hr.html#SP2_12" > § 2.12< / a > , < a href = "27-hr.html#SP2_14" > § 2.14< / a > , < a href = "27-hr.html#SP2_16" > § 2.16< / a > , < a href = "27-hr.html#SP2_18" > § 2.18< / a > , < a href = "27-hr.html#SP2_20" > § 2.20< / a > , < a href = "27-hr.html#SP2_21" > § 2.21< / a > , < a href = "27-hr.html#SP2_23" > § 2.23< / a > , < a href = "27-hr.html#SP2_25" > § 2.25< / a > , < a href = "27-hr.html#SP2_29" > § 2.29< / a > , < a href = "27-hr.html#SP2_31" > § 2.31< / a > , < a href = "27-hr.html#SP2_33" > § 2.33< / a > , < a href = "27-hr.html#SP2_35" > § 2.35< / a > , < a href = "27-hr.html#SP2_37" > § 2.37< / a > , < a href = "27-hr.html#SP2_43" > § 2.43< / a > , < a href = "27-hr.html#SP6" > § 6< / a > ).< / p >
2019-04-12 16:47:00 +03:00
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::make_in_exotic is used in 27/hr (< a href = "27-hr.html#SP2_41" > § 2.41< / a > ).< / p >
2019-04-12 16:47:00 +03:00
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::make_as is used in 27/hr (< a href = "27-hr.html#SP6" > § 6< / a > ).< / p >
2019-04-12 16:47:00 +03:00
< p class = "endnote" > The function HierarchyLocations::make_function is used in 27/hr (< a href = "27-hr.html#SP2_10" > § 2.10< / a > , < a href = "27-hr.html#SP2_14" > § 2.14< / a > , < a href = "27-hr.html#SP2_18" > § 2.18< / a > , < a href = "27-hr.html#SP2_21" > § 2.21< / a > , < a href = "27-hr.html#SP2_25" > § 2.25< / a > , < a href = "27-hr.html#SP2_27" > § 2.27< / a > , < a href = "27-hr.html#SP2_29" > § 2.29< / a > , < a href = "27-hr.html#SP2_31" > § 2.31< / a > , < a href = "27-hr.html#SP2_33" > § 2.33< / a > , < a href = "27-hr.html#SP2_35" > § 2.35< / a > , < a href = "27-hr.html#SP2_39" > § 2.39< / a > ).< / p >
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::make_function_in_exotic is used in 27/hr (< a href = "27-hr.html#SP2_41" > § 2.41< / a > ).< / p >
2019-04-12 16:47:00 +03:00
< p class = "endnote" > The function HierarchyLocations::make_datum is used in 27/hr (< a href = "27-hr.html#SP2_37" > § 2.37< / a > ).< / p >
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::make_datum_in_exotic appears nowhere else.< / p >
2019-04-12 16:47:00 +03:00
< p class = "endnote" > The function HierarchyLocations::create_nrls appears nowhere else.< / p >
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::index appears nowhere else.< / p >
< p class = "endnote" > The function HierarchyLocations::find is used in 27/hr (< a href = "27-hr.html#SP6" > § 6< / a > ).< / p >
2019-04-12 16:47:00 +03:00
2019-04-12 18:30:28 +03:00
< p class = "endnote" > The function HierarchyLocations::find_by_name is used in 27/hr (< a href = "27-hr.html#SP6" > § 6< / a > ).< / p >
2019-04-12 16:47:00 +03:00
< p class = "endnote" > The function HierarchyLocations::function appears nowhere else.< / p >
< p class = "endnote" > The function HierarchyLocations::nrl_to_iname appears nowhere else.< / p >
< p class = "endnote" > The structure named_resource_location is private to this section.< / p >
< hr class = "tocbar" >
< ul class = "toc" > < li > < a href = "27-pc.html" > Back to 'Packaging'< / a > < / li > < li > < a href = "27-hr.html" > Continue with 'Hierarchy'< / a > < / li > < / ul > < hr class = "tocbar" >
<!-- End of weave -->
< / body >
< / html >