Trait gstreamer_rtsp_server::prelude::RTSPSessionExt[][src]

pub trait RTSPSessionExt: 'static {
Show methods fn allow_expire(&self);
fn filter(
        &self,
        func: Option<&mut dyn FnMut(&RTSPSession, &RTSPSessionMedia) -> RTSPFilterResult>
    ) -> Vec<RTSPSessionMedia>;
fn header(&self) -> Option<GString>;
fn media(&self, path: &str) -> (Option<RTSPSessionMedia>, i32);
fn sessionid(&self) -> Option<GString>;
fn 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 extra_timeout(&self) -> u32;
fn set_extra_timeout(&self, extra_timeout: u32);
fn is_timeout_always_visible(&self) -> bool;
fn set_timeout_always_visible(&self, timeout_always_visible: bool);
fn connect_extra_timeout_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_timeout_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_timeout_always_visible_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
}

Trait containing all RTSPSession methods.

Implementors

crate::RTSPSession

Required methods

fn allow_expire(&self)[src]

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

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

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 crate::RTSPFilterResult::Remove, the media will be removed from self.

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

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

When func is None, crate::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 crate::RTSPFilterResult::Ref. After usage, each element in the [crate::glib::List] should be unreffed before the list is freed.

fn header(&self) -> Option<GString>[src]

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

Returns

the Session header of self. g_free() after usage.

fn media(&self, path: &str) -> (Option<RTSPSessionMedia>, i32)[src]

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 sessionid(&self) -> Option<GString>[src]

Get the sessionid of self.

Returns

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

fn timeout(&self) -> u32[src]

Get the timeout value of self.

Returns

the timeout of self in seconds.

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

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>
[src]

Manage the media object obj in self. path will be used to retrieve this media from the session with [Self::get_media()].

Ownership is taken from media.

path

the path for the media

media

a crate::RTSPMedia

Returns

a new crate::RTSPSessionMedia (XXX: @-reference does not belong to RTSPSessionExt!) object.

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

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)[src]

Prevent self from expiring.

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

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

media

a crate::RTSPMedia

Returns

true if there are more media session left in self.

fn set_timeout(&self, timeout: u32)[src]

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)[src]

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

fn extra_timeout(&self) -> u32[src]

fn set_extra_timeout(&self, extra_timeout: u32)[src]

fn is_timeout_always_visible(&self) -> bool[src]

fn set_timeout_always_visible(&self, timeout_always_visible: bool)[src]

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

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

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

Loading content...

Implementors

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

fn allow_expire(&self)[src]

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

fn header(&self) -> Option<GString>[src]

fn media(&self, path: &str) -> (Option<RTSPSessionMedia>, i32)[src]

fn sessionid(&self) -> Option<GString>[src]

fn timeout(&self) -> u32[src]

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

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

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

fn prevent_expire(&self)[src]

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

fn set_timeout(&self, timeout: u32)[src]

fn touch(&self)[src]

fn extra_timeout(&self) -> u32[src]

fn set_extra_timeout(&self, extra_timeout: u32)[src]

fn is_timeout_always_visible(&self) -> bool[src]

fn set_timeout_always_visible(&self, timeout_always_visible: bool)[src]

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

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

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

Loading content...