private with System.Address_To_Access_Conversions; package Wayland.Client is subtype Num_Events_Dispatched is Natural; subtype Num_Bytes_Sent is Natural; type Proxy is new Wayland_Object with private; type Proxy_Access is access Proxy; type Display is new Proxy with private; type Display_Access is access Display; type Event_Queue is new Wayland_Object private; type Event_Queue_Access is access Event_Queue; type Dispatcher_Function is access procedure (Obj : in out Proxy; Op : in Opcode; Args : in Argument_Array); -- Proxy function Create (Factory : in Proxy; My_Interface : in Protocol_Interface) return Proxy; procedure Marshal (This : in out Proxy; Op : in Opcode; Args : in Argument_Array); function Marshal_Constructor (This : in out Proxy; My_Interface : in Protocol_Interface; Op : in Opcode; Args : in Argument_Array) return Proxy; function Marshal_Constructor (This : in out Proxy; My_Interface : in Protocol_Interface; Op : in Opcode; Args : in Argument_Array; Version : in Version_Number) return Proxy; procedure Set_Dispatcher (This : in out Proxy; Func : in Dispatcher_Function); function Get_Version (This : in Proxy) return Version_Number; function Get_ID (This : in Proxy) return ID_Number; function Get_Interface_Name (This : in Proxy) return String; procedure Set_Queue (This : in out Proxy; Queue : in Event_Queue_Access); -- Display function Connect (Name : in String) return Display; function Connect_To_FD (FD : in File_Descriptor) return Display; function Get_FD (This : in Display) return File_Descriptor; function Dispatch (This : in out Display) return Num_Events_Dispatched; function Dispatch_Pending (This : in out Display) return Num_Events_Dispatched; function Dispatch_Queue (This : in out Display; Queue : in out Event_Queue) return Num_Events_Dispatched; function Dispatch_Queue_Pending (This : in out Display; Queue : in out Event_Queue) return Num_Events_Dispatched; function Get_Error (This : in out Display) return Error_Value; function Get_Protocol_Error (This : in Display; My_Interface : in Protocol_Interface_Access; ID : in ID_Number) return Error_Value; function Flush (This : in out Display) return Num_Bytes_Sent; function Roundtrip_Queue (This : in out Display; Queue : in out Event_Queue) return Num_Events_Dispatched; function Roundtrip (This : in out Display) return Num_Events_Dispatched; procedure Read_Events (This : in out Display); procedure Read_Events (This : in out Display; Queue : in out Event_Queue); -- Event_Queue function Create_Queue (This : in out Display) return Event_Queue; -- Log procedure Set_Log_Handler (Handler : in Log_Function); private type Proxy is new Wayland_Object with record Current_Dispatcher : Dispatcher_Function; end record; procedure Finalize (This : in out Proxy); package Proxy_Convert is new System.Address_To_Access_Conversions (Proxy'Class); type Display is new Proxy with null record; procedure Finalize (This : in out Display); type Event_Queue is new Wayland_Object with null record; procedure Finalize (This : in out Event_Queue); end Wayland.Client;