summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php')
-rw-r--r--vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php b/vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php
new file mode 100644
index 0000000..8d1457c
--- /dev/null
+++ b/vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+namespace AWS\CRT\HTTP;
+
+use AWS\CRT\Internal\Encoding;
+
+final class Headers {
+ private $headers;
+
+ public function __construct($headers = []) {
+ $this->headers = $headers;
+ }
+
+ public static function marshall($headers) {
+ $buf = "";
+ foreach ($headers->headers as $header => $value) {
+ $buf .= Encoding::encodeString($header);
+ $buf .= Encoding::encodeString($value);
+ }
+ return $buf;
+ }
+
+ public static function unmarshall($buf) {
+ $strings = Encoding::readStrings($buf);
+ $headers = [];
+ for ($idx = 0; $idx < count($strings);) {
+ $headers[$strings[$idx++]] = $strings[$idx++];
+ }
+ return new Headers($headers);
+ }
+
+ public function count() {
+ return count($this->headers);
+ }
+
+ public function get($header) {
+ return isset($this->headers[$header]) ? $this->headers[$header] : null;
+ }
+
+ public function set($header, $value) {
+ $this->headers[$header] = $value;
+ }
+
+ public function toArray() {
+ return $this->headers;
+ }
+}