|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 5277 (0x149d)
Types: TextFile
Names: »B«
└─⟦516dceb10⟧ Bits:30000751 8mm tape, Rational 1000, RCI_VADS
└─⟦9a14c9417⟧ »DATA«
└─⟦this⟧
separate (Library_Extensions)
procedure Import_Postprocess
(Views_To_Import : Directory.Naming.Iterator;
Into_View : String;
Status : in out Simple_Status.Condition) is
Views_2_Import : Naming.Iterator := Views_To_Import;
Machine_Result : constant Library_Interface.String_Result :=
Library_Interface.Remote_Machine (View => Into_View);
Directory_Result : constant Library_Interface.String_Result :=
Library_Interface.Remote_Directory (View => Into_View);
Remote_Machine : constant String :=
Machine_Result.Result (1 .. Machine_Result.Size);
Remote_Directory : constant String :=
Directory_Result.Result (1 .. Directory_Result.Size);
Old_Context : Directory.Naming.Context;
procedure Display_Information is
begin
if Remote_Machine = "" then
Log.Put_Line (Message => "A null remote machine name was provided.",
Kind => Profile.Warning_Msg);
end if;
if Remote_Directory = "" then
Log.Put_Line (Message =>
"A null remote directory name was provided.",
Kind => Profile.Warning_Msg);
end if;
end Display_Information;
begin
Log.Put_Line
(Message => "Import_Postprocess ( Views_To_Import =>",
Kind => Profile.Sharp_Msg);
Naming.Reset (Views_2_Import);
while not Naming.Done (Views_2_Import) loop
Log.Put_Line
(Message => Naming.Source_Name (Views_2_Import),
Kind => Profile.Sharp_Msg);
Naming.Next (Views_2_Import);
end loop;
Log.Put_Line
(Message => "into_view => " & Into_View & ")",
Kind => Profile.Sharp_Msg);
Simple_Status.Initialize (Status);
-- Sanity checks
Naming.Reset (Views_2_Import);
if Naming.Done (Views_2_Import) then
return; -- there are no views to import!
end if;
if Remote_Machine = "" or else Remote_Directory = "" then
Display_Information;
Set_Status
(Status => Status,
Message => "Insufficient remote program library information.",
Severity => Simple_Status.Problem);
return;
end if;
Set_Context
(Old_Context => Old_Context,
View => Into_View,
Status => Status);
if not Simple_Status.Error (Status) then
declare
Remote_Connection : Rci.Context;
begin
Acquire_Connection
(Remote_Connection => Remote_Connection,
Remote_Machine => Remote_Machine,
Status => Status);
if not Simple_Status.Error (Status) then
declare
View_Object : Directory.Object;
Naming_Status : Directory.Error_Status :=
Directory.Successful;
begin
Naming.Reset (Views_2_Import);
while not Naming.Done (Views_2_Import) loop
Naming.Get_Object (Iter => Views_2_Import,
The_Object => View_Object,
Status => Naming_Status);
if Directory."=" (Naming_Status,
Directory.Successful) then
declare
Immediate_Import : constant String :=
Naming.Get_Full_Name (Entity => View_Object);
begin
Acquire_Visibility
(Imported_View => Immediate_Import,
Into_View => Into_View,
Remote_Connection => Remote_Connection,
Status => Status);
end;
else
Log.Put_Line (Message => Simple_Status.Message
(Status => Status),
Kind => Profile.Negative_Msg);
end if;
Naming.Next (Views_2_Import);
end loop;
exception
when others =>
Rci.Release
(Remote_Connection => Remote_Connection,
Status => Status,
Trace_Command => Trace_Rci_Commands);
raise;
end;
Rci.Release
(Remote_Connection => Remote_Connection,
Status => Status,
Trace_Command => Trace_Rci_Commands);
end if;
exception
when others =>
Reset_Context (Old_Context);
raise;
end;
Reset_Context (Old_Context);
end if;
exception
when others =>
Unhandled_Exception (Status, "Import_Postprocess");
end Import_Postprocess;