Squashed 'third_party/rawrtc/rawrtc/' content from commit aa3ae4b24

Change-Id: I38a655a4259b62f591334e90a1315bd4e7e4d8ec
git-subtree-dir: third_party/rawrtc/rawrtc
git-subtree-split: aa3ae4b247275cc6e69c30613b3a4ba7fdc82d1b
diff --git a/include/rawrtc/ice_parameters.h b/include/rawrtc/ice_parameters.h
new file mode 100644
index 0000000..c8bd5a0
--- /dev/null
+++ b/include/rawrtc/ice_parameters.h
@@ -0,0 +1,41 @@
+#pragma once
+#include <rawrtcc/code.h>
+#include <re.h>
+
+/*
+ * ICE parameters.
+ */
+struct rawrtc_ice_parameters;
+
+/*
+ * Create a new ICE parameters instance.
+ * `*parametersp` must be unreferenced.
+ */
+enum rawrtc_code rawrtc_ice_parameters_create(
+    struct rawrtc_ice_parameters** const parametersp,  // de-referenced
+    char* const username_fragment,  // copied
+    char* const password,  // copied
+    bool const ice_lite);
+
+/*
+ * Get the ICE parameter's username fragment value.
+ * `*username_fragmentp` must be unreferenced.
+ */
+enum rawrtc_code rawrtc_ice_parameters_get_username_fragment(
+    char** const username_fragmentp,  // de-referenced
+    struct rawrtc_ice_parameters* const parameters);
+
+/*
+ * Get the ICE parameter's password value.
+ * `*passwordp` must be unreferenced.
+ */
+enum rawrtc_code rawrtc_ice_parameters_get_password(
+    char** const passwordp,  // de-referenced
+    struct rawrtc_ice_parameters* const parameters);
+
+/*
+ * Get the ICE parameter's ICE lite value.
+ */
+enum rawrtc_code rawrtc_ice_parameters_get_ice_lite(
+    bool* const ice_litep,  // de-referenced
+    struct rawrtc_ice_parameters* const parameters);