HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/admin.javaapp.co.uk/vendor/aws/aws-crt-php/src/AWS/CRT/HTTP/Headers.php
<?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;
    }
}