|
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: 7168 (0x1c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Message, seg_0555c1
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
package body Message is type Conversion is array (Command_Type'First .. Command_Type'Last) of Command_String; To_String : constant Conversion := (Registration => Command_Type'Image (Registration) (1 .. Length_Command_String), Unregistration => Command_Type'Image (Unregistration) (1 .. Length_Command_String), Queries => Command_Type'Image (Queries) (1 .. Length_Command_String), Request => Command_Type'Image (Request) (1 .. Length_Command_String), Notification => Command_Type'Image (Notification) (1 .. Length_Command_String), Forward => Command_Type'Image (Forward) (1 .. Length_Command_String), Publication => Command_Type'Image (Publication) (1 .. Length_Command_String), Unpublication => Command_Type'Image (Unpublication) (1 .. Length_Command_String), Subscription => Command_Type'Image (Subscription) (1 .. Length_Command_String), Unsubscription => Command_Type'Image (Unsubscription) (1 .. Length_Command_String), Filtration => Command_Type'Image (Filtration) (1 .. Length_Command_String), Unfiltration => Command_Type'Image (Unfiltration) (1 .. Length_Command_String)); procedure Fill (Data : in out Data_String; Mess : in Tmessage) is begin Bounded_String.Copy (Source => Identification.Tclient_Id'Image (Mess.Origin) & ":" & To_String (Mess.Command) & ":" & Bounded_String.Image (Mess.Content), Target => Data); end Fill; procedure Unfill (Data : in Data_String; Mess : in out Tmessage) is Intermediaire : Command_String; I, J : Natural := 1; Char : String (1 .. 1); begin loop Char := Bounded_String.Extract (Source => Data, Start_Pos => J, End_Pos => J); exit when Char = ":"; J := J + 1; end loop; Mess.Origin := Identification.Tclient_Id'Value (Bounded_String.Extract (Data, I, J - 1)); I := J + 1; J := Length_Command_String + I - 1; Intermediaire := Bounded_String.Extract (Source => Data, Start_Pos => I, End_Pos => J); for Index in Command_Type'First .. Command_Type'Last loop if Intermediaire = To_String (Index) then Mess.Command := Index; end if; end loop; I := J + 2; J := Bounded_String.Length (Data); Bounded_String.Copy (Target => Mess.Content, Source => Bounded_String.Extract (Source => Data, Start_Pos => I, End_Pos => J)); end Unfill; procedure Fill_Command (Mess : out Tmessage; Comm : in Command_Type) is begin Mess.Command := Comm; end Fill_Command; procedure Unfill_Command (Mess : in Tmessage; Comm : out Command_Type) is begin Comm := Mess.Command; end Unfill_Command; procedure Fill_Origin (Mess : out Tmessage; Orig : in Identification.Tclient_Id) is begin Mess.Origin := Orig; end Fill_Origin; procedure Unfill_Origin (Mess : in Tmessage; Orig : out Identification.Tclient_Id) is begin Orig := Mess.Origin; end Unfill_Origin; procedure Fill_Content (Mess : out Tmessage; Cont : in Content_String) is begin Mess.Content := Cont; end Fill_Content; procedure Unfill_Content (Mess : in Tmessage; Cont : out Content_String) is begin Cont := Mess.Content; end Unfill_Content; end Message;
nblk1=6 nid=4 hdr6=a [0x00] rec0=14 rec1=00 rec2=01 rec3=072 [0x01] rec0=17 rec1=00 rec2=06 rec3=02a [0x02] rec0=18 rec1=00 rec2=02 rec3=080 [0x03] rec0=21 rec1=00 rec2=05 rec3=02e [0x04] rec0=02 rec1=00 rec2=03 rec3=000 [0x05] rec0=43 rec1=d1 rec2=48 rec3=4e4 tail 0x2175f8e3687bd454f4009 0x42a00088462060003 Free Block Chain: 0x4: 0000 00 00 01 aa 80 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆