|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 10240 (0x2800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Method, seg_0554ec
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Bounded_String;
with Byte_Defs, Utils;
use Bounded_String;
package body Method is
function Null_Method return Object is
begin
return (Parametre.Null_Variable_String, Liste_Parametre.Nil,
Liste_Parametre.Nil, Sub_List.Nil, Filt_List.Nil);
end Null_Method;
function Image (O : Object) return String is
Subscripted : Parametre.Variable_String;
Filtration : Parametre.Variable_String;
In_Param : Parametre.Variable_String;
Out_Param : Parametre.Variable_String;
Result : Parametre.Variable_String;
begin
Subscripted := Get_Subscripted_Object (O);
Filtration := Get_Filtration_Object (O);
In_Param := Get_In_Parameter (O => O);
Out_Param := Get_Out_Parameter (O => O);
Append (Result, O.Name);
Append (Result, Parametre_Defs.Message_Separator);
Append (Result, Natural'Image (Get_In_Parameter_Number (O)));
Append (Result, Parametre_Defs.Message_Separator);
Append (Result, In_Param);
Append (Result, Natural'Image (Get_Out_Parameter_Number (O)));
Append (Result, Parametre_Defs.Message_Separator);
Append (Result, Out_Param);
Append (Result, Subscripted);
Append (Result, Filtration);
return Image (Result);
end Image;
function Get_Method_Name (O : Object) return Parametre.Variable_String is
begin
return O.Name;
end Get_Method_Name;
function Get_In_Parameter_Number (O : Object) return Natural is
begin
return Liste_Parametre.Length (O.In_Parameters);
end Get_In_Parameter_Number;
function Get_In_Parameter (O : Object) return Parametre.Variable_String is
Parameter : Parametre.Variable_String;
Iter : Liste_Parametre.Iterator;
begin
Liste_Parametre.Init (Iter => Iter, L => O.In_Parameters);
while not Liste_Parametre.Done (Iter) loop
Append (Parameter, Image (Liste_Parametre.Value (Iter)));
Append (Parameter, Parametre_Defs.Message_Separator);
Liste_Parametre.Next (Iter);
end loop;
return Parameter;
end Get_In_Parameter;
function Get_Out_Parameter_Number (O : Object) return Natural is
begin
return Liste_Parametre.Length (O.Out_Parameters);
end Get_Out_Parameter_Number;
function Get_Out_Parameter (O : Object) return Parametre.Variable_String is
Parameter : Parametre.Variable_String;
Iter : Liste_Parametre.Iterator;
begin
Liste_Parametre.Init (Iter => Iter, L => O.Out_Parameters);
while not Liste_Parametre.Done (Iter) loop
Append (Parameter, Image (Liste_Parametre.Value (Iter)));
Append (Parameter, Parametre_Defs.Message_Separator);
Liste_Parametre.Next (Iter);
end loop;
return Parameter;
end Get_Out_Parameter;
function Get_Subscripted_Object (O : Object)
return Parametre.Variable_String is
Parameter : Parametre.Variable_String;
Iter : Sub_List.S_Iterator;
begin
Sub_List.Init (Iter => Iter, L => O.Subscripted_Object);
while not Sub_List.Done (Iter) loop
Append (Parameter, Utils.Byte_String_To_String
(Byte_Defs.Byte_String
(Sub_List.Value (Iter))));
Append (Parameter, Parametre_Defs.Message_Separator);
Sub_List.Next (Iter);
end loop;
return Parameter;
end Get_Subscripted_Object;
function Get_Sub_List (O : Object) return Sub_List.S_List is
begin
return O.Subscripted_Object;
end Get_Sub_List;
function Get_Filtration_Object (O : Object)
return Parametre.Variable_String is
Parameter : Parametre.Variable_String;
Iter : Filt_List.S_Iterator;
begin
Filt_List.Init (Iter => Iter, L => O.Filtration_Object);
while not Filt_List.Done (Iter) loop
Append (Parameter, Utils.Byte_String_To_String
(Byte_Defs.Byte_String
((Filt_List.Value (Iter)))));
Append (Parameter, Parametre_Defs.Message_Separator);
Filt_List.Next (Iter);
end loop;
return Parameter;
end Get_Filtration_Object;
procedure Init (O : out Object;
Name : Parametre.Variable_String;
In_Parameters : Liste_Parametre.List;
Out_Parameters : Liste_Parametre.List) is
begin
O.Name := Name;
O.In_Parameters := In_Parameters;
O.Out_Parameters := Out_Parameters;
end Init;
procedure Add_Subscripted_Object
(O : in out Object;
The_Object : Parametre_Defs.Identificator) is
begin
if not Sub_List.Is_In (The_Object, O.Subscripted_Object) then
O.Subscripted_Object := Sub_List.Make
(The_Object, O.Subscripted_Object);
end if;
end Add_Subscripted_Object;
procedure Remove_Subscripted_Object
(O : in out Object;
The_Object : Parametre_Defs.Identificator) is
begin
if Sub_List.Is_In (The_Object, O.Subscripted_Object) then
Sub_List.Remove (The_Object, O.Subscripted_Object);
end if;
end Remove_Subscripted_Object;
procedure Add_Filtration_Object
(O : in out Object;
The_Object : Parametre_Defs.Identificator) is
begin
O.Filtration_Object := Filt_List.Make (The_Object, O.Filtration_Object);
end Add_Filtration_Object;
procedure Remove_Filtration_Object
(O : in out Object;
The_Object : Parametre_Defs.Identificator) is
begin
if Filt_List.Is_In (The_Object, O.Filtration_Object) then
Filt_List.Remove (The_Object, O.Filtration_Object);
end if;
end Remove_Filtration_Object;
procedure Free (O : in out Object) is
begin
Sub_List.Free (O.Subscripted_Object);
Filt_List.Free (O.Filtration_Object);
Liste_Parametre.Free (O.In_Parameters);
Liste_Parametre.Free (O.Out_Parameters);
end Free;
function Is_Subscripted
(O : in Object; Method : Parametre_Defs.Identificator)
return Boolean is
begin
return Sub_List.Is_In (Method, O.Subscripted_Object);
end Is_Subscripted;
function Is_Filtration
(O : in Object; Method : Parametre_Defs.Identificator)
return Boolean is
begin
return Filt_List.Is_In (Method, O.Filtration_Object);
end Is_Filtration;
function Equal (Left : Parametre.Variable_String; Right : Object)
return Boolean is
begin
return Right.Name = Left;
end Equal;
end Method;
nblk1=9
nid=0
hdr6=12
[0x00] rec0=19 rec1=00 rec2=01 rec3=01a
[0x01] rec0=04 rec1=00 rec2=09 rec3=004
[0x02] rec0=1c rec1=00 rec2=02 rec3=022
[0x03] rec0=1f rec1=00 rec2=03 rec3=018
[0x04] rec0=22 rec1=00 rec2=08 rec3=02e
[0x05] rec0=03 rec1=00 rec2=04 rec3=01a
[0x06] rec0=1c rec1=00 rec2=05 rec3=020
[0x07] rec0=21 rec1=00 rec2=06 rec3=004
[0x08] rec0=20 rec1=00 rec2=07 rec3=000
tail 0x2175f5ffa87bca01cf59b 0x42a00088462060003