|
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 - download
Length: 11264 (0x2c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Message, seg_0569c9
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io; with Communication; with Utils; package body Message is Longueur_Entete : Positive := 6; procedure Get (Trame : V_String.Variable_String; I : in out Positive; Champs : in out V_String.Variable_String; Car : Character); procedure Enregistrement (O : out Objet) is begin Construire (0, 0, 0, Registration, V_String.Value (""), O); Text_Io.Put_Line ("construction regist"); end Enregistrement; procedure Ajout_Service (O : in out Objet; Service : V_String.Variable_String) is begin Construire (0, O.Expediteur, O.Ordre, Publication, Service, O); end Ajout_Service; procedure Demande (O : in out Objet; Service : V_String.Variable_String) is begin Construire (0, O.Expediteur, O.Ordre, Request, Service, O); end Demande; procedure Construire (Dest : Integer; Exp : Integer; Ordre : Integer; Typ : Type_Message; Donnee : V_String.Variable_String; O : out Objet) is begin O.Destinataire := Dest; O.Expediteur := Exp; O.Ordre := Ordre; O.Typ := Typ; O.Donnee := Donnee; end Construire; procedure Afficher (O : Objet) is begin Text_Io.Put_Line ("le destinataire est : " & Integer'Image (O.Destinataire)); Text_Io.Put_Line ("l'expediteur est : " & Integer'Image (O.Expediteur)); Text_Io.Put_Line ("le numero du message est : " & Integer'Image (O.Ordre)); Text_Io.Put_Line ("le type du message est : " & Type_Message'Image (O.Typ)); Text_Io.Put_Line ("la donnee du message est : " & V_String.Image (O.Donnee)); end Afficher; function Image (O : Objet) return Byte_Defs.Byte_String is begin return (Utils.String_To_Byte_String (Integer'Image (O.Destinataire) & '%' & Integer'Image (O.Expediteur) & '%' & Integer'Image (O.Ordre) & '%' & Type_Message'Image (O.Typ) & '%' & V_String.Image (O.Donnee) & '%')); end Image; procedure Get (Trame : V_String.Variable_String; I : in out Positive; Champs : in out V_String.Variable_String; Car : Character) is A : Positive := 1; Debut_Index : Positive := I; begin while V_String.Char_At (Trame, I) /= Car loop V_String.Copy (Champs, V_String.Extract (Trame, Debut_Index, I)); I := I + 1; end loop; I := I + 1; end Get; procedure Value (Trame_In : Byte_Defs.Byte_String; O : out Objet) is I : Positive := Longueur_Entete + 1; Champs1, Champs2, Champs3, Champs4, Champs5 : V_String.Variable_String; Trame : V_String.Variable_String; begin Trame := V_String.Value (Utils.Byte_String_To_String (Trame_In)); Get (Trame, I, Champs1, '%'); O.Destinataire := Integer'Value (V_String.Image (Champs1)); Get (Trame, I, Champs2, '%'); O.Expediteur := Integer'Value (V_String.Image (Champs2)); Get (Trame, I, Champs3, '%'); O.Ordre := Integer'Value (V_String.Image (Champs3)); Get (Trame, I, Champs4, '%'); O.Typ := Type_Message'Value (V_String.Image (Champs4)); Get (Trame, I, Champs5, '%'); O.Donnee := Champs5; end Value; procedure Emission (O : Objet; Connection_Emission : Transport.Connection_Id; Connection_Reception : Transport.Connection_Id) is begin Communication.Emission (Image (O), Connection_Emission, Connection_Reception); end Emission; procedure Emission_Orb (O : Objet; Connection : Transport.Connection_Id; Socket : Transport_Defs.Socket_Id; Host : Transport_Defs.Host_Id) is use Byte_Defs; begin Communication.Emission_Orb (Image (O), Connection, Socket, Host); end Emission_Orb; procedure Copy (Source : Objet; Target : in out Objet) is begin Target.Destinataire := Source.Destinataire; Target.Expediteur := Source.Expediteur; Target.Ordre := Source.Ordre; Target.Typ := Source.Typ; V_String.Copy (Target.Donnee, Source.Donnee); end Copy; procedure Reception (O : in out Objet; Connection : Transport.Connection_Id) is Trame : Byte_Defs.Byte_String (1 .. 256); O1 : Objet; begin Communication.Reception (Trame, Connection); Value (Trame, O1); Copy (O1, O); end Reception; procedure Reception_Orb (O : out Objet; Connection : Transport.Connection_Id; Socket : out Transport_Defs.Socket_Id; Host : out Transport_Defs.Host_Id) is Trame : Byte_Defs.Byte_String (1 .. 256); begin Communication.Reception_Orb (Trame, Connection, Socket, Host); Value (Trame, O); end Reception_Orb; function Consulter_Destinataire (O : Objet) return Integer is begin return O.Destinataire; end Consulter_Destinataire; function Consulter_Expediteur (O : Objet) return Integer is begin return O.Expediteur; end Consulter_Expediteur; function Consulter_Ordre (O : Objet) return Integer is begin return O.Ordre; end Consulter_Ordre; function Consulter_Typ (O : Objet) return Type_Message is begin return O.Typ; end Consulter_Typ; function Consulter_Donnee (O : Objet) return V_String.Variable_String is begin return O.Donnee; end Consulter_Donnee; procedure Modifier_Destinataire (O : in out Objet; D : Integer) is begin O.Destinataire := D; end Modifier_Destinataire; procedure Modifier_Expediteur (O : in out Objet; E : Integer) is begin O.Expediteur := E; end Modifier_Expediteur; procedure Modifier_Ordre (O : in out Objet; R : Integer) is begin O.Ordre := R; end Modifier_Ordre; procedure Incrementer_Ordre (O : in out Objet) is begin O.Ordre := O.Ordre + 1; end Incrementer_Ordre; procedure Modifier_Typ (O : in out Objet; T : Type_Message) is begin O.Typ := T; end Modifier_Typ; procedure Modifier_Donnee (O : in out Objet; D : V_String.Variable_String) is begin O.Donnee := D; end Modifier_Donnee; end Message;
nblk1=a nid=6 hdr6=10 [0x00] rec0=21 rec1=00 rec2=01 rec3=010 [0x01] rec0=17 rec1=00 rec2=09 rec3=064 [0x02] rec0=1a rec1=00 rec2=0a rec3=084 [0x03] rec0=16 rec1=00 rec2=07 rec3=024 [0x04] rec0=13 rec1=00 rec2=02 rec3=02c [0x05] rec0=1e rec1=00 rec2=03 rec3=038 [0x06] rec0=24 rec1=00 rec2=04 rec3=012 [0x07] rec0=11 rec1=00 rec2=08 rec3=000 [0x08] rec0=11 rec1=00 rec2=08 rec3=000 [0x09] rec0=30 rec1=00 rec2=20 rec3=000 tail 0x21762ea3887c492c8dee8 0x42a00088462060003 Free Block Chain: 0x6: 0000 00 05 02 1a 80 08 6d 65 5f 49 6e 29 29 3b 08 00 ┆ me_In)); ┆ 0x5: 0000 00 00 00 84 80 11 6e 67 5f 54 6f 5f 42 79 74 65 ┆ ng_To_Byte┆