aboutsummaryrefslogtreecommitdiff
path: root/common/native/src/main/scala/http/ArrayUtils.scala
diff options
context:
space:
mode:
Diffstat (limited to 'common/native/src/main/scala/http/ArrayUtils.scala')
-rw-r--r--common/native/src/main/scala/http/ArrayUtils.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/common/native/src/main/scala/http/ArrayUtils.scala b/common/native/src/main/scala/http/ArrayUtils.scala
new file mode 100644
index 0000000..00c1067
--- /dev/null
+++ b/common/native/src/main/scala/http/ArrayUtils.scala
@@ -0,0 +1,28 @@
+package triad
+package http
+
+import scala.scalanative.native._
+
+object ArrayUtils {
+
+ def toBuffer(array: Array[Byte])(implicit z: Zone): Ptr[Byte] = {
+ val buffer = z.alloc(array.size)
+ var i = 0
+ while (i < array.size) {
+ buffer(i) = array(i)
+ i += 1
+ }
+ buffer
+ }
+
+ def toArray(buffer: Ptr[Byte], size: CSize): Array[Byte] = {
+ val array = new Array[Byte](size.toInt)
+ var i = 0
+ while (i < array.size) {
+ array(i) = buffer(i)
+ i += 1
+ }
+ array
+ }
+
+}