blob: c8bd5a01286b8ba20de1438595b2e5980506f1ea [file] [log] [blame]
James Kuszmaul4a42b182021-01-17 11:32:46 -08001#pragma once
2#include <rawrtcc/code.h>
3#include <re.h>
4
5/*
6 * ICE parameters.
7 */
8struct rawrtc_ice_parameters;
9
10/*
11 * Create a new ICE parameters instance.
12 * `*parametersp` must be unreferenced.
13 */
14enum rawrtc_code rawrtc_ice_parameters_create(
15 struct rawrtc_ice_parameters** const parametersp, // de-referenced
16 char* const username_fragment, // copied
17 char* const password, // copied
18 bool const ice_lite);
19
20/*
21 * Get the ICE parameter's username fragment value.
22 * `*username_fragmentp` must be unreferenced.
23 */
24enum rawrtc_code rawrtc_ice_parameters_get_username_fragment(
25 char** const username_fragmentp, // de-referenced
26 struct rawrtc_ice_parameters* const parameters);
27
28/*
29 * Get the ICE parameter's password value.
30 * `*passwordp` must be unreferenced.
31 */
32enum rawrtc_code rawrtc_ice_parameters_get_password(
33 char** const passwordp, // de-referenced
34 struct rawrtc_ice_parameters* const parameters);
35
36/*
37 * Get the ICE parameter's ICE lite value.
38 */
39enum rawrtc_code rawrtc_ice_parameters_get_ice_lite(
40 bool* const ice_litep, // de-referenced
41 struct rawrtc_ice_parameters* const parameters);