[][src]Trait gstreamer_rtsp_server::RTSPSessionExt

pub trait RTSPSessionExt: 'static {
    fn allow_expire(&self);
fn filter(
        &self,
        func: Option<&mut dyn FnMut(&RTSPSession, &RTSPSessionMedia) -> RTSPFilterResult>
    ) -> Vec<RTSPSessionMedia>;
fn get_header(&self) -> Option<GString>;
fn get_media(&self, path: &str) -> (Option<RTSPSessionMedia>, i32);
fn get_sessionid(&self) -> Option<GString>;
fn get_timeout(&self) -> u32;
fn is_expired_usec(&self, now: i64) -> bool;
fn manage_media<P: IsA<RTSPMedia>>(
        &self,
        path: &str,
        media: &P
    ) -> Result<RTSPSessionMedia, BoolError>;
fn next_timeout_usec(&self, now: i64) -> i32;
fn prevent_expire(&self);
fn release_media<P: IsA<RTSPSessionMedia>>(&self, media: &P) -> bool;
fn set_timeout(&self, timeout: u32);
fn touch(&self);
fn get_property_extra_timeout(&self) -> u32;
fn set_property_extra_timeout(&self, extra_timeout: u32);
fn get_property_timeout_always_visible(&self) -> bool;
fn set_property_timeout_always_visible(&self, timeout_always_visible: bool);
fn connect_property_extra_timeout_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_property_timeout_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_property_timeout_always_visible_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; }

Trait containing all RTSPSession methods.

Implementors

RTSPSession

Required methods

fn allow_expire(&self)

Allow self to expire. This method must be called an equal amount of time as RTSPSessionExt::prevent_expire.

fn filter(
    &self,
    func: Option<&mut dyn FnMut(&RTSPSession, &RTSPSessionMedia) -> RTSPFilterResult>
) -> Vec<RTSPSessionMedia>

Call func for each media in self. The result value of func determines what happens to the media. func will be called with self locked so no further actions on self can be performed from func.

If func returns RTSPFilterResult::Remove, the media will be removed from self.

If func returns RTSPFilterResult::Keep, the media will remain in self.

If func returns RTSPFilterResult::Ref, the media will remain in self but will also be added with an additional ref to the result glib::List of this function..

When func is None, RTSPFilterResult::Ref will be assumed for all media.

func

a callback

user_data

user data passed to func

Returns

a GList with all media for which func returned RTSPFilterResult::Ref. After usage, each element in the glib::List should be unreffed before the list is freed.

fn get_header(&self) -> Option<GString>

Get the string that can be placed in the Session header field.

Returns

the Session header of self. g_free after usage.

fn get_media(&self, path: &str) -> (Option<RTSPSessionMedia>, i32)

Get the session media for path. matched will contain the number of matched characters of path.

path

the path for the media

matched

the amount of matched characters

Returns

the configuration for path in self.

fn get_sessionid(&self) -> Option<GString>

Get the sessionid of self.

Returns

the sessionid of self. The value remains valid as long as self is alive.

fn get_timeout(&self) -> u32

Get the timeout value of self.

Returns

the timeout of self in seconds.

fn is_expired_usec(&self, now: i64) -> bool

Check if self timeout out.

now

the current monotonic time

Returns

true if self timed out

fn manage_media<P: IsA<RTSPMedia>>(
    &self,
    path: &str,
    media: &P
) -> Result<RTSPSessionMedia, BoolError>

Manage the media object obj in self. path will be used to retrieve this media from the session with RTSPSessionExt::get_media.

Ownership is taken from media.

path

the path for the media

media

a RTSPMedia

Returns

a new RTSPSessionMedia object.

fn next_timeout_usec(&self, now: i64) -> i32

Get the amount of milliseconds till the session will expire.

now

the current monotonic time

Returns

the amount of milliseconds since the session will time out.

fn prevent_expire(&self)

Prevent self from expiring.

fn release_media<P: IsA<RTSPSessionMedia>>(&self, media: &P) -> bool

Release the managed media in self, freeing the memory allocated by it.

media

a RTSPMedia

Returns

true if there are more media session left in self.

fn set_timeout(&self, timeout: u32)

Configure self for a timeout of timeout seconds. The session will be cleaned up when there is no activity for timeout seconds.

timeout

the new timeout

fn touch(&self)

Update the last_access time of the session to the current time.

fn get_property_extra_timeout(&self) -> u32

fn set_property_extra_timeout(&self, extra_timeout: u32)

fn get_property_timeout_always_visible(&self) -> bool

fn set_property_timeout_always_visible(&self, timeout_always_visible: bool)

fn connect_property_extra_timeout_notify<F: Fn(&Self) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId

fn connect_property_timeout_notify<F: Fn(&Self) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId

fn connect_property_timeout_always_visible_notify<F: Fn(&Self) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId

Loading content...

Implementors

impl<O: IsA<RTSPSession>> RTSPSessionExt for O[src]

Loading content...