Download include/aws/core/utils/event/EventMessage.h from Shenghong/dai_env: direct link, hf CLI and curl.
- Browser
- Download file 4.93 kB
-
https://huggingface.co/Shenghong/dai_env/resolve/main/include/aws/core/utils/event/EventMessage.h
- Command line
-
hf download hf://Shenghong/dai_env/include/aws/core/utils/event/EventMessage.h
-
curl -L -o EventMessage.h https://huggingface.co/Shenghong/dai_env/resolve/main/include/aws/core/utils/event/EventMessage.h
4.93 kB
| /** | |
| * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
| * SPDX-License-Identifier: Apache-2.0. | |
| */ | |
| namespace Aws | |
| { | |
| namespace Utils | |
| { | |
| namespace Event | |
| { | |
| extern AWS_CORE_API const char EVENT_TYPE_HEADER[]; | |
| extern AWS_CORE_API const char CONTENT_TYPE_HEADER[]; | |
| extern AWS_CORE_API const char MESSAGE_TYPE_HEADER[]; | |
| extern AWS_CORE_API const char ERROR_CODE_HEADER[]; | |
| extern AWS_CORE_API const char ERROR_MESSAGE_HEADER[]; | |
| extern AWS_CORE_API const char EXCEPTION_TYPE_HEADER[]; | |
| /** | |
| * A typical message in event stream consists of two parts: Prelude and Data, as well as the prelude CRC and message CRC. | |
| * Prelude consists of total byte length and headers byte length. | |
| * Data consists of headers and payload. | |
| */ | |
| class AWS_CORE_API Message | |
| { | |
| public: | |
| enum class MessageType | |
| { | |
| UNKNOWN, | |
| EVENT, | |
| REQUEST_LEVEL_ERROR, | |
| REQUEST_LEVEL_EXCEPTION | |
| }; | |
| enum class ContentType | |
| { | |
| UNKNOWN, | |
| APPLICATION_OCTET_STREAM, | |
| APPLICATION_JSON, | |
| TEXT_PLAIN | |
| }; | |
| static MessageType GetMessageTypeForName(const Aws::String& name); | |
| static Aws::String GetNameForMessageType(MessageType value); | |
| static ContentType GetContentTypeForName(const Aws::String& name); | |
| static Aws::String GetNameForContentType(ContentType value); | |
| /** | |
| * Clean up the message, including the metadata, headers and payload received. | |
| */ | |
| void Reset(); | |
| /** | |
| * Get/set the total length of this message: prelude(8 bytes) + prelude CRC(4 bytes) + Data(headers length + payload length) + message CRC(4 bytes). | |
| */ | |
| inline void SetTotalLength(size_t length) | |
| { | |
| m_totalLength = length; | |
| m_eventPayload.reserve(length); | |
| } | |
| inline size_t GetTotalLength() const { return m_totalLength; } | |
| /** | |
| * Get/set the length of the headers. | |
| * Each header consists of: header name byte-length(1 byte) + header name + header value type(1 byte) + header value. | |
| */ | |
| inline void SetHeadersLength(size_t length) { m_headersLength = length; } | |
| inline size_t GetHeadersLength() const { return m_headersLength; } | |
| /** | |
| * Get/set the length of payload. | |
| */ | |
| inline void SetPayloadLength(size_t length) { m_payloadLength = length; } | |
| inline size_t GetPayloadLength() const { return m_payloadLength; } | |
| /** | |
| * Set/get event headers. | |
| */ | |
| inline void InsertEventHeader(const Aws::String& headerName, const EventHeaderValue& eventHeaderValue) | |
| { | |
| m_eventHeaders.emplace(Aws::Utils::Event::EventHeaderValuePair(headerName, eventHeaderValue)); | |
| } | |
| inline const Aws::Utils::Event::EventHeaderValueCollection& GetEventHeaders() const { return m_eventHeaders; } | |
| /** | |
| * Set event payload. | |
| */ | |
| void WriteEventPayload(const unsigned char* data, size_t length); | |
| void WriteEventPayload(const Aws::Vector<unsigned char>& bits); | |
| void WriteEventPayload(const Aws::String& bits); | |
| /** | |
| * Get the byte array of the payload with transferring ownership. | |
| */ | |
| Aws::Vector<unsigned char>&& GetEventPayloadWithOwnership() { return std::move(m_eventPayload); } | |
| const Aws::Vector<unsigned char>& GetEventPayload() const { return m_eventPayload; } | |
| Aws::Vector<unsigned char>& GetEventPayload() { return m_eventPayload; } | |
| /** | |
| * Convert byte array of the payload to string without transferring ownership. | |
| */ | |
| inline Aws::String GetEventPayloadAsString() { return Aws::String(m_eventPayload.begin(), m_eventPayload.end()); } | |
| private: | |
| size_t m_totalLength = 0; | |
| size_t m_headersLength = 0; | |
| size_t m_payloadLength = 0; | |
| Aws::Utils::Event::EventHeaderValueCollection m_eventHeaders; | |
| Aws::Vector<unsigned char> m_eventPayload; | |
| }; | |
| } | |
| } | |
| } | |