gstreamer/auto/
task_pool.rs1use crate::{ffi, Object};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstTaskPool")]
11 pub struct TaskPool(Object<ffi::GstTaskPool, ffi::GstTaskPoolClass>) @extends Object;
12
13 match fn {
14 type_ => || ffi::gst_task_pool_get_type(),
15 }
16}
17
18impl TaskPool {
19 pub const NONE: Option<&'static TaskPool> = None;
20
21 #[doc(alias = "gst_task_pool_new")]
22 pub fn new() -> TaskPool {
23 assert_initialized_main_thread!();
24 unsafe { from_glib_full(ffi::gst_task_pool_new()) }
25 }
26}
27
28impl Default for TaskPool {
29 fn default() -> Self {
30 Self::new()
31 }
32}
33
34unsafe impl Send for TaskPool {}
35unsafe impl Sync for TaskPool {}
36
37mod sealed {
38 pub trait Sealed {}
39 impl<T: super::IsA<super::TaskPool>> Sealed for T {}
40}
41
42pub trait TaskPoolExt: IsA<TaskPool> + sealed::Sealed + 'static {
43 #[doc(alias = "gst_task_pool_cleanup")]
44 fn cleanup(&self) {
45 unsafe {
46 ffi::gst_task_pool_cleanup(self.as_ref().to_glib_none().0);
47 }
48 }
49
50 #[doc(alias = "gst_task_pool_prepare")]
51 fn prepare(&self) -> Result<(), glib::Error> {
52 unsafe {
53 let mut error = std::ptr::null_mut();
54 let _ = ffi::gst_task_pool_prepare(self.as_ref().to_glib_none().0, &mut error);
55 if error.is_null() {
56 Ok(())
57 } else {
58 Err(from_glib_full(error))
59 }
60 }
61 }
62}
63
64impl<O: IsA<TaskPool>> TaskPoolExt for O {}