aboutsummaryrefslogblamecommitdiffstats
path: root/src/lib/eldbus/eldbus_types.eot
blob: ebd3130a43237a28312332d8f8354e974cbc8e81 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                                         

                                                                                                         
 

                                   



                                                                                              

                                                                                
                                       

 

                                            



                              





                                                                                       



                                                  




                                              

                                              

                                                       



                                     

                                        



                                                                   



                                  

                                     

                                                                



                                    



                                                                           
                                                                  



                                      


                                           



                                    



                                                                              



                                  

                                      

                                                                                             
 
struct Eldbus.Proxy; [[Represents a client object bound to an interface]]
struct Eldbus.Connection; [[Represents a connection of one the type of connection with the DBus daemon.]]
struct Eldbus.Object; [[Represents an object path already attached with bus name or unique id]]

enum @extern Eldbus.Connection.Type
{
    [[Eldbus connection type]]
    unknown = 0, [[Sentinel, not a real type]]
    session, [[Regular user session bus, used for applications and services running per user]]
    system, [[System-wide connection bus, used for system services]]
    starter, [[Uses whatever bus started our application, be session or system]]
    address, [[A private bus at a specific address]]
    last, [[Sentinel, not a real type]]
}

enum Eldbus.Introspection.Argument_Direction
{
   [[Argument direction]]
   none = 0, [[No direction]]
   in, [[Incoming direction]]
   out, [[Outgoing direction]]
}

/* DTD conversion form: http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd */

enum Eldbus.Introspection.Property_Access
{
   [[Property access rights]]
   read, [[Property can be read]]
   write, [[Property can be written]]
   readwrite, [[Property can be read and written]]
}

/* FIXME: Properly type all of these lists. */
struct Eldbus.Introspection.Node
{
   [[DBus Node]]
   name: stringshare; [[Node name (optional)]]
   nodes: list<void_ptr>; [[List with nodes]]
   interfaces: list<void_ptr>; [[List with interfaces]]
}

struct Eldbus.Introspection.Interface
{
   [[DBus Interface]]
   name: stringshare; [[Interface name]]
   methods: list<void_ptr>; [[List with interface methods]]
   signals: list<void_ptr>; [[List with interface signals]]
   properties: list<void_ptr>; [[List with interface properties]]
   annotations: list<void_ptr>; [[List with interface annotations]]
}

struct Eldbus.Introspection.Method
{
   [[DBus Method]]
   name: stringshare; [[Method name]]
   arguments: list<void_ptr>; [[List with method arguments]]
   annotations: list<void_ptr>; [[List with method annotations]]
}

struct Eldbus.Introspection.Property
{
   [[DBus Property]]
   name: stringshare; [[Property name]]
   type: stringshare; [[Property type]]
   access: Eldbus.Introspection.Property_Access; [[Property access rights]]
   annotations: list<void_ptr>; [[List with property annotations]]
}

struct Eldbus.Introspection.Annotation
{
   [[DBus Annotation]]
   name: stringshare; [[Annotation name]]
   value: stringshare; [[Annotation value]]
}

struct Eldbus.Introspection.Argument
{
   [[DBus Argument]]
    name: stringshare; [[Argument name (optional)]]
    type: stringshare; [[Argument type]]
    direction: Eldbus.Introspection.Argument_Direction; [[Argument direction]]
}

struct Eldbus.Introspection.Signal
{
   [[DBus Signal]]
    name: stringshare; [[Signal name]]
    arguments: list<ptr(Eldbus.Introspection.Argument)>; [[List with signal arguments]]
    annotations: list<ptr(Eldbus.Introspection.Annotation)>; [[List with signal annotations]]
}