2020-05-17 00:55:29 +01:00
#![ allow(clippy::all) ]
2020-05-11 00:48:18 +01:00
// This code was autogenerated with `dbus-codegen-rust --file telepathy-spec/spec/Channel_Dispatcher.xml -i org.freedesktop.Telepathy -a AsRefClosure -o src/telepathy/channel_dispatcher.rs`, see https://github.com/diwic/dbus-rs
2020-05-08 20:38:30 +01:00
use dbus ;
use dbus ::arg ;
use dbus ::tree ;
pub trait ChannelDispatcher {
fn create_channel (
& self ,
account : dbus ::Path ,
requested_properties : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > ,
user_action_time : i64 ,
preferred_handler : & str ,
) -> Result < dbus ::Path < 'static > , tree ::MethodErr > ;
fn ensure_channel (
& self ,
account : dbus ::Path ,
requested_properties : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > ,
user_action_time : i64 ,
preferred_handler : & str ,
) -> Result < dbus ::Path < 'static > , tree ::MethodErr > ;
fn create_channel_with_hints (
& self ,
account : dbus ::Path ,
requested_properties : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > ,
user_action_time : i64 ,
preferred_handler : & str ,
hints : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > ,
) -> Result < dbus ::Path < 'static > , tree ::MethodErr > ;
fn ensure_channel_with_hints (
& self ,
account : dbus ::Path ,
requested_properties : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > ,
user_action_time : i64 ,
preferred_handler : & str ,
hints : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > ,
) -> Result < dbus ::Path < 'static > , tree ::MethodErr > ;
fn delegate_channels (
& self ,
channels : Vec < dbus ::Path > ,
user_action_time : i64 ,
preferred_handler : & str ,
) -> Result <
(
Vec < dbus ::Path < 'static > > ,
::std ::collections ::HashMap < dbus ::Path < 'static > , ( String , String ) > ,
) ,
tree ::MethodErr ,
> ;
fn present_channel (
& self ,
channel : dbus ::Path ,
user_action_time : i64 ,
) -> Result < ( ) , tree ::MethodErr > ;
fn interfaces ( & self ) -> Result < Vec < String > , tree ::MethodErr > ;
fn supports_request_hints ( & self ) -> Result < bool , tree ::MethodErr > ;
}
pub fn channel_dispatcher_server < F , T , D > (
factory : & tree ::Factory < tree ::MTFn < D > , D > ,
data : D ::Interface ,
f : F ,
) -> tree ::Interface < tree ::MTFn < D > , D >
where
D : tree ::DataType ,
D ::Method : Default ,
D ::Property : Default ,
2020-05-11 00:48:18 +01:00
T : AsRef < dyn ChannelDispatcher > ,
F : 'static + Fn ( & tree ::MethodInfo < tree ::MTFn < D > , D > ) -> T ,
2020-05-08 20:38:30 +01:00
{
let i = factory . interface ( " org.freedesktop.Telepathy.ChannelDispatcher " , data ) ;
let f = ::std ::sync ::Arc ::new ( f ) ;
let fclone = f . clone ( ) ;
let h = move | minfo : & tree ::MethodInfo < tree ::MTFn < D > , D > | {
let mut i = minfo . msg . iter_init ( ) ;
let account : dbus ::Path = i . read ( ) ? ;
let requested_properties : ::std ::collections ::HashMap <
& str ,
arg ::Variant < Box < dyn arg ::RefArg > > ,
> = i . read ( ) ? ;
let user_action_time : i64 = i . read ( ) ? ;
let preferred_handler : & str = i . read ( ) ? ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
let request = d . create_channel (
account ,
requested_properties ,
user_action_time ,
preferred_handler ,
) ? ;
let rm = minfo . msg . method_return ( ) ;
let rm = rm . append1 ( request ) ;
Ok ( vec! [ rm ] )
} ;
let m = factory . method ( " CreateChannel " , Default ::default ( ) , h ) ;
let m = m . in_arg ( ( " Account " , " o " ) ) ;
let m = m . in_arg ( ( " Requested_Properties " , " a{sv} " ) ) ;
let m = m . in_arg ( ( " User_Action_Time " , " x " ) ) ;
let m = m . in_arg ( ( " Preferred_Handler " , " s " ) ) ;
let m = m . out_arg ( ( " Request " , " o " ) ) ;
let i = i . add_m ( m ) ;
let fclone = f . clone ( ) ;
let h = move | minfo : & tree ::MethodInfo < tree ::MTFn < D > , D > | {
let mut i = minfo . msg . iter_init ( ) ;
let account : dbus ::Path = i . read ( ) ? ;
let requested_properties : ::std ::collections ::HashMap <
& str ,
arg ::Variant < Box < dyn arg ::RefArg > > ,
> = i . read ( ) ? ;
let user_action_time : i64 = i . read ( ) ? ;
let preferred_handler : & str = i . read ( ) ? ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
let request = d . ensure_channel (
account ,
requested_properties ,
user_action_time ,
preferred_handler ,
) ? ;
let rm = minfo . msg . method_return ( ) ;
let rm = rm . append1 ( request ) ;
Ok ( vec! [ rm ] )
} ;
let m = factory . method ( " EnsureChannel " , Default ::default ( ) , h ) ;
let m = m . in_arg ( ( " Account " , " o " ) ) ;
let m = m . in_arg ( ( " Requested_Properties " , " a{sv} " ) ) ;
let m = m . in_arg ( ( " User_Action_Time " , " x " ) ) ;
let m = m . in_arg ( ( " Preferred_Handler " , " s " ) ) ;
let m = m . out_arg ( ( " Request " , " o " ) ) ;
let i = i . add_m ( m ) ;
let fclone = f . clone ( ) ;
let h = move | minfo : & tree ::MethodInfo < tree ::MTFn < D > , D > | {
let mut i = minfo . msg . iter_init ( ) ;
let account : dbus ::Path = i . read ( ) ? ;
let requested_properties : ::std ::collections ::HashMap <
& str ,
arg ::Variant < Box < dyn arg ::RefArg > > ,
> = i . read ( ) ? ;
let user_action_time : i64 = i . read ( ) ? ;
let preferred_handler : & str = i . read ( ) ? ;
let hints : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > =
i . read ( ) ? ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
let request = d . create_channel_with_hints (
account ,
requested_properties ,
user_action_time ,
preferred_handler ,
hints ,
) ? ;
let rm = minfo . msg . method_return ( ) ;
let rm = rm . append1 ( request ) ;
Ok ( vec! [ rm ] )
} ;
let m = factory . method ( " CreateChannelWithHints " , Default ::default ( ) , h ) ;
let m = m . in_arg ( ( " Account " , " o " ) ) ;
let m = m . in_arg ( ( " Requested_Properties " , " a{sv} " ) ) ;
let m = m . in_arg ( ( " User_Action_Time " , " x " ) ) ;
let m = m . in_arg ( ( " Preferred_Handler " , " s " ) ) ;
let m = m . in_arg ( ( " Hints " , " a{sv} " ) ) ;
let m = m . out_arg ( ( " Request " , " o " ) ) ;
let i = i . add_m ( m ) ;
let fclone = f . clone ( ) ;
let h = move | minfo : & tree ::MethodInfo < tree ::MTFn < D > , D > | {
let mut i = minfo . msg . iter_init ( ) ;
let account : dbus ::Path = i . read ( ) ? ;
let requested_properties : ::std ::collections ::HashMap <
& str ,
arg ::Variant < Box < dyn arg ::RefArg > > ,
> = i . read ( ) ? ;
let user_action_time : i64 = i . read ( ) ? ;
let preferred_handler : & str = i . read ( ) ? ;
let hints : ::std ::collections ::HashMap < & str , arg ::Variant < Box < dyn arg ::RefArg > > > =
i . read ( ) ? ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
let request = d . ensure_channel_with_hints (
account ,
requested_properties ,
user_action_time ,
preferred_handler ,
hints ,
) ? ;
let rm = minfo . msg . method_return ( ) ;
let rm = rm . append1 ( request ) ;
Ok ( vec! [ rm ] )
} ;
let m = factory . method ( " EnsureChannelWithHints " , Default ::default ( ) , h ) ;
let m = m . in_arg ( ( " Account " , " o " ) ) ;
let m = m . in_arg ( ( " Requested_Properties " , " a{sv} " ) ) ;
let m = m . in_arg ( ( " User_Action_Time " , " x " ) ) ;
let m = m . in_arg ( ( " Preferred_Handler " , " s " ) ) ;
let m = m . in_arg ( ( " Hints " , " a{sv} " ) ) ;
let m = m . out_arg ( ( " Request " , " o " ) ) ;
let i = i . add_m ( m ) ;
let fclone = f . clone ( ) ;
let h = move | minfo : & tree ::MethodInfo < tree ::MTFn < D > , D > | {
let mut i = minfo . msg . iter_init ( ) ;
let channels : Vec < dbus ::Path > = i . read ( ) ? ;
let user_action_time : i64 = i . read ( ) ? ;
let preferred_handler : & str = i . read ( ) ? ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
let ( delegated , not_delegated ) =
d . delegate_channels ( channels , user_action_time , preferred_handler ) ? ;
let rm = minfo . msg . method_return ( ) ;
let rm = rm . append1 ( delegated ) ;
let rm = rm . append1 ( not_delegated ) ;
Ok ( vec! [ rm ] )
} ;
let m = factory . method ( " DelegateChannels " , Default ::default ( ) , h ) ;
let m = m . in_arg ( ( " Channels " , " ao " ) ) ;
let m = m . in_arg ( ( " User_Action_Time " , " x " ) ) ;
let m = m . in_arg ( ( " Preferred_Handler " , " s " ) ) ;
let m = m . out_arg ( ( " Delegated " , " ao " ) ) ;
let m = m . out_arg ( ( " Not_Delegated " , " a{o(ss)} " ) ) ;
let i = i . add_m ( m ) ;
let fclone = f . clone ( ) ;
let h = move | minfo : & tree ::MethodInfo < tree ::MTFn < D > , D > | {
let mut i = minfo . msg . iter_init ( ) ;
let channel : dbus ::Path = i . read ( ) ? ;
let user_action_time : i64 = i . read ( ) ? ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
d . present_channel ( channel , user_action_time ) ? ;
let rm = minfo . msg . method_return ( ) ;
Ok ( vec! [ rm ] )
} ;
let m = factory . method ( " PresentChannel " , Default ::default ( ) , h ) ;
let m = m . in_arg ( ( " Channel " , " o " ) ) ;
let m = m . in_arg ( ( " User_Action_Time " , " x " ) ) ;
let i = i . add_m ( m ) ;
let p = factory . property ::< Vec < & str > , _ > ( " Interfaces " , Default ::default ( ) ) ;
let p = p . access ( tree ::Access ::Read ) ;
let fclone = f . clone ( ) ;
let p = p . on_get ( move | a , pinfo | {
let minfo = pinfo . to_method_info ( ) ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( & minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
a . append ( d . interfaces ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let p = factory . property ::< bool , _ > ( " SupportsRequestHints " , Default ::default ( ) ) ;
let p = p . access ( tree ::Access ::Read ) ;
let fclone = f . clone ( ) ;
let p = p . on_get ( move | a , pinfo | {
let minfo = pinfo . to_method_info ( ) ;
2020-05-11 00:48:18 +01:00
let dd = fclone ( & minfo ) ;
let d = dd . as_ref ( ) ;
2020-05-08 20:38:30 +01:00
a . append ( d . supports_request_hints ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
i
}