gstreamer_rtsp_server/auto/
rtsp_address_pool.rs1use crate::{ffi, RTSPAddress, RTSPAddressFlags};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstRTSPAddressPool")]
11 pub struct RTSPAddressPool(Object<ffi::GstRTSPAddressPool, ffi::GstRTSPAddressPoolClass>);
12
13 match fn {
14 type_ => || ffi::gst_rtsp_address_pool_get_type(),
15 }
16}
17
18impl RTSPAddressPool {
19 pub const NONE: Option<&'static RTSPAddressPool> = None;
20
21 #[doc(alias = "gst_rtsp_address_pool_new")]
22 pub fn new() -> RTSPAddressPool {
23 assert_initialized_main_thread!();
24 unsafe { from_glib_full(ffi::gst_rtsp_address_pool_new()) }
25 }
26}
27
28impl Default for RTSPAddressPool {
29 fn default() -> Self {
30 Self::new()
31 }
32}
33
34unsafe impl Send for RTSPAddressPool {}
35unsafe impl Sync for RTSPAddressPool {}
36
37pub trait RTSPAddressPoolExt: IsA<RTSPAddressPool> + 'static {
38 #[doc(alias = "gst_rtsp_address_pool_acquire_address")]
39 fn acquire_address(
40 &self,
41 flags: RTSPAddressFlags,
42 n_ports: i32,
43 ) -> Result<RTSPAddress, glib::BoolError> {
44 unsafe {
45 Option::<_>::from_glib_full(ffi::gst_rtsp_address_pool_acquire_address(
46 self.as_ref().to_glib_none().0,
47 flags.into_glib(),
48 n_ports,
49 ))
50 .ok_or_else(|| glib::bool_error!("Failed to acquire address"))
51 }
52 }
53
54 #[doc(alias = "gst_rtsp_address_pool_add_range")]
55 fn add_range(
56 &self,
57 min_address: &str,
58 max_address: &str,
59 min_port: u16,
60 max_port: u16,
61 ttl: u8,
62 ) -> Result<(), glib::error::BoolError> {
63 unsafe {
64 glib::result_from_gboolean!(
65 ffi::gst_rtsp_address_pool_add_range(
66 self.as_ref().to_glib_none().0,
67 min_address.to_glib_none().0,
68 max_address.to_glib_none().0,
69 min_port,
70 max_port,
71 ttl
72 ),
73 "Failed to add address range"
74 )
75 }
76 }
77
78 #[doc(alias = "gst_rtsp_address_pool_clear")]
79 fn clear(&self) {
80 unsafe {
81 ffi::gst_rtsp_address_pool_clear(self.as_ref().to_glib_none().0);
82 }
83 }
84
85 #[doc(alias = "gst_rtsp_address_pool_dump")]
86 fn dump(&self) {
87 unsafe {
88 ffi::gst_rtsp_address_pool_dump(self.as_ref().to_glib_none().0);
89 }
90 }
91
92 #[doc(alias = "gst_rtsp_address_pool_has_unicast_addresses")]
93 fn has_unicast_addresses(&self) -> bool {
94 unsafe {
95 from_glib(ffi::gst_rtsp_address_pool_has_unicast_addresses(
96 self.as_ref().to_glib_none().0,
97 ))
98 }
99 }
100}
101
102impl<O: IsA<RTSPAddressPool>> RTSPAddressPoolExt for O {}