summaryrefslogtreecommitdiff
path: root/src/wayland.ads
blob: 6c10b1cf6382f2c24a8479075e47d64fecf33941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125


private with

    Ada.Finalization,
    System;


package Wayland is


    Wayland_Error : exception;




    type Unsigned_Integer is mod 2 ** 32;

    type Result is (Success, Failure);
    type Error_Code is new Unsigned_Integer;

    type File_Descriptor is new Natural;

    type Version_Number is new Positive;
    type Serial_Number is new Unsigned_Integer;
    type ID_Number is new Unsigned_Integer;

    type Process_ID is new Natural;
    type User_ID is new Natural;
    type Group_ID is new Natural;




    type Opcode is new Unsigned_Integer;

    type Argument_Kind is (Uint, Int, Fixed, Str, Arr, FD, ID, Obj);
    type Argument (Kind : Argument_Kind) is private;
    type Argument_Array is array (Integer range <>) of Argument;

    function Arg
           (Of_Type : in Unsigned_Integer)
        return Arg (Uint);

    function Arg
           (Of_Type : in Integer)
        return Arg (Int);

    function Arg
           (Of_Type : in )
        return Arg (Fixed);

    function Arg
           (Of_Type : in String)
        return Arg (String);

    function Arg
           (Of_Type : in )
        return Arg (Arr);

    function Arg
           (Of_Type : in File_Descriptor)
        return Arg (FD);

    function Arg
           (Of_Type : in ID_Number)
        return Arg (ID);

    function Arg
           (Of_Type : in )
        return Arg (Obj);




    type Protocol_Interface is private;
    type Protocol_Interface_Access is access Protocol_Interface;

    type Protocol_Interface_Reference (Data : not null access Protocol_Interface) is limited private
        with Implicit_Dereference => Data;




    type Wayland_Object is limited tagged private;

    type Listener_Function is access procedure
           (Obj : in out Wayland_Object);




    type Log_Function is access procedure
           (Msg : in String);


private


    type Argument (Kind : Argument_Kind) is record
        
    end record;




    type Wayland_Object is new Ada.Finalization.Limited_Controlled with record
        Void_Ptr : System.Address;
    end record;

    procedure Initialize
           (This : in out Wayland_Object);




    type Protocol_Interface is record
    end record;

    type Protocol_Interface_Reference (Data : not null access Protocol_Interface) is limited null record
        with Implicit_Dereference => Data;


end Wayland;