DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦e49164533⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Broker, seg_038f7c

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Block_Class;
with Boolean_Class;  
with Bounded_String;
with Errors;
with Integer_Class;
with Pen_Class;
with String_Class;
with Turtle_Class;

package body Broker is

    function Send (To_Object : Object.Reference; Unary_Msg : Scanner.Lexeme)
                  return Object.Reference is
    begin
        case Object.Get_Class (To_Object) is
            when Object.Entier =>
                return Integer_Class.Send (To_Object, Unary_Msg);
            when Object.Booleen =>
                return Boolean_Class.Send (To_Object, Unary_Msg);
            when Object.Chaine =>
                return String_Class.Send (To_Object, Unary_Msg);
            when Object.Bloc =>  
                return Block_Class.Send (To_Object, Unary_Msg);
            when Object.Tortue =>
                return Turtle_Class.Send (To_Object, Unary_Msg);
            when Object.Stylo =>
                return Pen_Class.Send (To_Object, Unary_Msg);
            when Object.Vide =>
                [statement]
        end case;
    end Send;

    function Send (To_Object : Object.Reference;
                   Binary_Msg : Scanner.Lexeme;
                   With_Object : Object.Reference) return Object.Reference is
    begin
        case Object.Get_Class (To_Object) is
            when Object.Entier =>
                return Integer_Class.Send (To_Object, Binary_Msg, With_Object);
            when Object.Booleen =>
                return Boolean_Class.Send (To_Object, Binary_Msg, With_Object);
            when Object.Chaine =>
                return String_Class.Send (To_Object, Binary_Msg, With_Object);
            when Object.Bloc =>
                raise Errors.Undefined_Message_For_Block;
            when Object.Tortue =>
                raise Errors.Undefined_Message_For_Turtle;
            when Object.Stylo =>
                raise Errors.Undefined_Message_For_Pen;
            when Object.Vide =>
                raise Errors.Message_Sent_To_Empty_Object;
        end case;
    end Send;

    procedure Send (To_Object : Object.Reference;
                    Keyword_Msg : in out Message.Selector;
                    With_Arguments : in out Parameters.List;
                    Back_Object : out Object.Reference) is
        Result_Object : Object.Reference;
    begin
        case Object.Get_Class (To_Object) is
            when Object.Entier =>
                Integer_Class.Send (To_Object, Keyword_Msg,
                                    With_Arguments, Result_Object);
            when Object.Booleen =>
                Boolean_Class.Send (To_Object, Keyword_Msg,
                                    With_Arguments, Result_Object);
            when Object.Chaine =>               raise Errors.Undefined_Message_For_String;
            when Object.Bloc =>
                Block_Class.Send (To_Object, Keyword_Msg,
                                  With_Arguments, Result_Object);
            when Object.Tortue =>
                Turtle_Class.Send (To_Object, Keyword_Msg,
                                   With_Arguments, Result_Object);
            when Object.Stylo =>
                Pen_Class.Send (To_Object, Keyword_Msg,
                                With_Arguments, Result_Object);
            when Object.Vide =>
                raise Errors.Message_Sent_To_Empty_Object;
        end case;
        Back_Object := Result_Object;
    end Send;

end Broker;




E3 Meta Data

    nblk1=6
    nid=4
    hdr6=8
        [0x00] rec0=1d rec1=00 rec2=01 rec3=022
        [0x01] rec0=12 rec1=00 rec2=02 rec3=02a
        [0x02] rec0=17 rec1=00 rec2=03 rec3=002
        [0x03] rec0=14 rec1=00 rec2=05 rec3=000
        [0x04] rec0=16 rec1=00 rec2=03 rec3=00c
        [0x05] rec0=0a rec1=00 rec2=04 rec3=001
    tail 0x2153208ee84e87e271d04 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 06 00 06 80 03 65 6e 20 03 20 20 20 20 20 20  ┆      en        ┆
  0x6: 0000  00 00 00 13 80 10 20 20 20 20 49 6e 74 65 67 65  ┆          Intege┆