2020-05-11 00:48:18 +01:00
// This code was autogenerated with `dbus-codegen-rust --file telepathy-spec/spec/Channel_Interface_Conference.xml -i org.freedesktop.Telepathy -a AsRefClosure -o src/telepathy/channel_interface_conference.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 ChannelInterfaceConference {
fn channels ( & self ) -> Result < Vec < dbus ::Path < 'static > > , tree ::MethodErr > ;
fn initial_channels ( & self ) -> Result < Vec < dbus ::Path < 'static > > , tree ::MethodErr > ;
fn initial_invitee_handles ( & self ) -> Result < Vec < u32 > , tree ::MethodErr > ;
fn initial_invitee_ids ( & self ) -> Result < Vec < String > , tree ::MethodErr > ;
fn invitation_message ( & self ) -> Result < String , tree ::MethodErr > ;
fn original_channels (
& self ,
) -> Result < ::std ::collections ::HashMap < u32 , dbus ::Path < 'static > > , tree ::MethodErr > ;
}
pub fn channel_interface_conference_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 ,
D ::Signal : Default ,
2020-05-11 00:48:18 +01:00
T : AsRef < dyn ChannelInterfaceConference > ,
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.Channel.Interface.Conference " ,
data ,
) ;
let f = ::std ::sync ::Arc ::new ( f ) ;
let p = factory . property ::< Vec < dbus ::Path > , _ > ( " Channels " , 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 . channels ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let p = factory . property ::< Vec < dbus ::Path > , _ > ( " InitialChannels " , 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 . initial_channels ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let p = factory . property ::< Vec < u32 > , _ > ( " InitialInviteeHandles " , 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 . initial_invitee_handles ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let p = factory . property ::< Vec < & str > , _ > ( " InitialInviteeIDs " , 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 . initial_invitee_ids ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let p = factory . property ::< & str , _ > ( " InvitationMessage " , 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 . invitation_message ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let p = factory . property ::< ::std ::collections ::HashMap < u32 , dbus ::Path > , _ > (
" OriginalChannels " ,
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 . original_channels ( ) ? ) ;
Ok ( ( ) )
} ) ;
let i = i . add_p ( p ) ;
let s = factory . signal ( " ChannelMerged " , Default ::default ( ) ) ;
let s = s . arg ( ( " Channel " , " o " ) ) ;
let s = s . arg ( ( " Channel_Specific_Handle " , " u " ) ) ;
let s = s . arg ( ( " Properties " , " a{sv} " ) ) ;
let i = i . add_s ( s ) ;
let s = factory . signal ( " ChannelRemoved " , Default ::default ( ) ) ;
let s = s . arg ( ( " Channel " , " o " ) ) ;
let s = s . arg ( ( " Details " , " a{sv} " ) ) ;
let i = i . add_s ( s ) ;
i
}
#[ derive(Debug) ]
pub struct ChannelInterfaceConferenceChannelMerged {
pub channel : dbus ::Path < 'static > ,
pub channel_specific_handle : u32 ,
pub properties :
::std ::collections ::HashMap < String , arg ::Variant < Box < dyn arg ::RefArg + 'static > > > ,
}
impl arg ::AppendAll for ChannelInterfaceConferenceChannelMerged {
fn append ( & self , i : & mut arg ::IterAppend ) {
arg ::RefArg ::append ( & self . channel , i ) ;
arg ::RefArg ::append ( & self . channel_specific_handle , i ) ;
arg ::RefArg ::append ( & self . properties , i ) ;
}
}
impl arg ::ReadAll for ChannelInterfaceConferenceChannelMerged {
fn read ( i : & mut arg ::Iter ) -> Result < Self , arg ::TypeMismatchError > {
Ok ( ChannelInterfaceConferenceChannelMerged {
channel : i . read ( ) ? ,
channel_specific_handle : i . read ( ) ? ,
properties : i . read ( ) ? ,
} )
}
}
impl dbus ::message ::SignalArgs for ChannelInterfaceConferenceChannelMerged {
const NAME : & 'static str = " ChannelMerged " ;
const INTERFACE : & 'static str = " org.freedesktop.Telepathy.Channel.Interface.Conference " ;
}
#[ derive(Debug) ]
pub struct ChannelInterfaceConferenceChannelRemoved {
pub channel : dbus ::Path < 'static > ,
pub details : ::std ::collections ::HashMap < String , arg ::Variant < Box < dyn arg ::RefArg + 'static > > > ,
}
impl arg ::AppendAll for ChannelInterfaceConferenceChannelRemoved {
fn append ( & self , i : & mut arg ::IterAppend ) {
arg ::RefArg ::append ( & self . channel , i ) ;
arg ::RefArg ::append ( & self . details , i ) ;
}
}
impl arg ::ReadAll for ChannelInterfaceConferenceChannelRemoved {
fn read ( i : & mut arg ::Iter ) -> Result < Self , arg ::TypeMismatchError > {
Ok ( ChannelInterfaceConferenceChannelRemoved {
channel : i . read ( ) ? ,
details : i . read ( ) ? ,
} )
}
}
impl dbus ::message ::SignalArgs for ChannelInterfaceConferenceChannelRemoved {
const NAME : & 'static str = " ChannelRemoved " ;
const INTERFACE : & 'static str = " org.freedesktop.Telepathy.Channel.Interface.Conference " ;
}