gstreamer_validate/auto/
reporter.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::{ffi, Report, ReportingDetails, Runner};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10    ///
11    ///
12    /// ## Properties
13    ///
14    ///
15    /// #### `validate-runner`
16    ///  Readable | Writeable | Construct Only
17    ///
18    /// # Implements
19    ///
20    /// [`ReporterExt`][trait@crate::prelude::ReporterExt]
21    #[doc(alias = "GstValidateReporter")]
22    pub struct Reporter(Interface<ffi::GstValidateReporter, ffi::GstValidateReporterInterface>);
23
24    match fn {
25        type_ => || ffi::gst_validate_reporter_get_type(),
26    }
27}
28
29impl Reporter {
30    pub const NONE: Option<&'static Reporter> = None;
31}
32
33unsafe impl Send for Reporter {}
34unsafe impl Sync for Reporter {}
35
36mod sealed {
37    pub trait Sealed {}
38    impl<T: super::IsA<super::Reporter>> Sealed for T {}
39}
40
41/// Trait containing all [`struct@Reporter`] methods.
42///
43/// # Implementors
44///
45/// [`BinMonitor`][struct@crate::BinMonitor], [`ElementMonitor`][struct@crate::ElementMonitor], [`Monitor`][struct@crate::Monitor], [`PadMonitor`][struct@crate::PadMonitor], [`PipelineMonitor`][struct@crate::PipelineMonitor], [`Reporter`][struct@crate::Reporter], [`Scenario`][struct@crate::Scenario]
46pub trait ReporterExt: IsA<Reporter> + sealed::Sealed + 'static {
47    /// Gets `name` of `self`
48    ///
49    /// # Returns
50    ///
51    /// The name of the reporter
52    #[doc(alias = "gst_validate_reporter_get_name")]
53    #[doc(alias = "get_name")]
54    fn name(&self) -> Option<glib::GString> {
55        unsafe {
56            from_glib_none(ffi::gst_validate_reporter_get_name(
57                self.as_ref().to_glib_none().0,
58            ))
59        }
60    }
61
62    ///
63    /// # Returns
64    ///
65    /// The [`gst::Pipeline`][crate::gst::Pipeline]
66    #[doc(alias = "gst_validate_reporter_get_pipeline")]
67    #[doc(alias = "get_pipeline")]
68    fn pipeline(&self) -> Option<gst::Pipeline> {
69        unsafe {
70            from_glib_full(ffi::gst_validate_reporter_get_pipeline(
71                self.as_ref().to_glib_none().0,
72            ))
73        }
74    }
75
76    //#[doc(alias = "gst_validate_reporter_get_report")]
77    //#[doc(alias = "get_report")]
78    //fn report(&self, issue_id: /*Ignored*/IssueId) -> Option<Report> {
79    //    unsafe { TODO: call ffi:gst_validate_reporter_get_report() }
80    //}
81
82    #[doc(alias = "gst_validate_reporter_get_reporting_level")]
83    #[doc(alias = "get_reporting_level")]
84    fn reporting_level(&self) -> ReportingDetails {
85        unsafe {
86            from_glib(ffi::gst_validate_reporter_get_reporting_level(
87                self.as_ref().to_glib_none().0,
88            ))
89        }
90    }
91
92    /// Get the list of reports present in the reporter.
93    ///
94    /// # Returns
95    ///
96    /// the list of
97    /// [`Report`][crate::Report] present in the reporter.
98    /// The caller should unref each report once it is done with them.
99    #[doc(alias = "gst_validate_reporter_get_reports")]
100    #[doc(alias = "get_reports")]
101    fn reports(&self) -> Vec<Report> {
102        unsafe {
103            FromGlibPtrContainer::from_glib_full(ffi::gst_validate_reporter_get_reports(
104                self.as_ref().to_glib_none().0,
105            ))
106        }
107    }
108
109    /// Get the number of reports present in the reporter.
110    ///
111    /// # Returns
112    ///
113    /// the number of reports currently present in `self`.
114    #[doc(alias = "gst_validate_reporter_get_reports_count")]
115    #[doc(alias = "get_reports_count")]
116    fn reports_count(&self) -> i32 {
117        unsafe { ffi::gst_validate_reporter_get_reports_count(self.as_ref().to_glib_none().0) }
118    }
119
120    ///
121    /// # Returns
122    ///
123    /// The runner
124    #[doc(alias = "gst_validate_reporter_get_runner")]
125    #[doc(alias = "get_runner")]
126    fn runner(&self) -> Option<Runner> {
127        unsafe {
128            from_glib_full(ffi::gst_validate_reporter_get_runner(
129                self.as_ref().to_glib_none().0,
130            ))
131        }
132    }
133
134    #[doc(alias = "gst_validate_reporter_init")]
135    fn init(&self, name: &str) {
136        unsafe {
137            ffi::gst_validate_reporter_init(self.as_ref().to_glib_none().0, name.to_glib_none().0);
138        }
139    }
140
141    /// Remove all the [`Report`][crate::Report] from `self`. This should be called
142    /// before unreffing the reporter to break cyclic references.
143    #[doc(alias = "gst_validate_reporter_purge_reports")]
144    fn purge_reports(&self) {
145        unsafe {
146            ffi::gst_validate_reporter_purge_reports(self.as_ref().to_glib_none().0);
147        }
148    }
149
150    //#[doc(alias = "gst_validate_reporter_report_simple")]
151    //fn report_simple(&self, issue_id: /*Ignored*/IssueId, message: &str) {
152    //    unsafe { TODO: call ffi:gst_validate_reporter_report_simple() }
153    //}
154
155    /// Set `self` has the 'source' of any g_log happening during the
156    /// execution. Usually the monitor of the first [`gst::Pipeline`][crate::gst::Pipeline] is used
157    /// to handle g_logs.
158    ///
159    /// Basically this function is used in order to start tracking any
160    /// issue reported with g_log in the process into GstValidate report
161    /// in the GstValidate reporting system.
162    #[doc(alias = "gst_validate_reporter_set_handle_g_logs")]
163    fn set_handle_g_logs(&self) {
164        unsafe {
165            ffi::gst_validate_reporter_set_handle_g_logs(self.as_ref().to_glib_none().0);
166        }
167    }
168
169    /// Sets `name` on `self`
170    /// ## `name`
171    /// The name of the reporter
172    #[doc(alias = "gst_validate_reporter_set_name")]
173    fn set_name(&self, name: Option<glib::GString>) {
174        unsafe {
175            ffi::gst_validate_reporter_set_name(
176                self.as_ref().to_glib_none().0,
177                name.into_glib_ptr(),
178            );
179        }
180    }
181
182    #[doc(alias = "gst_validate_reporter_set_runner")]
183    fn set_runner(&self, runner: &impl IsA<Runner>) {
184        unsafe {
185            ffi::gst_validate_reporter_set_runner(
186                self.as_ref().to_glib_none().0,
187                runner.as_ref().to_glib_none().0,
188            );
189        }
190    }
191
192    #[doc(alias = "validate-runner")]
193    fn validate_runner(&self) -> Option<Runner> {
194        ObjectExt::property(self.as_ref(), "validate-runner")
195    }
196}
197
198impl<O: IsA<Reporter>> ReporterExt for O {}