diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h')
-rw-r--r-- | contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h new file mode 100644 index 0000000000..3b04be1d0d --- /dev/null +++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include/aws/s3/model/SelectObjectContentHandler.h @@ -0,0 +1,76 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include <aws/core/utils/HashingUtils.h> +#include <aws/core/utils/event/EventStreamHandler.h> +#include <aws/core/client/AWSError.h> +#include <aws/s3/S3_EXPORTS.h> +#include <aws/s3/S3Errors.h> + +#include <aws/s3/model/RecordsEvent.h> +#include <aws/s3/model/StatsEvent.h> +#include <aws/s3/model/ProgressEvent.h> + +namespace Aws +{ +namespace S3 +{ +namespace Model +{ + enum class SelectObjectContentEventType + { + RECORDS, + STATS, + PROGRESS, + CONT, + END, + UNKNOWN + }; + + class AWS_S3_API SelectObjectContentHandler : public Aws::Utils::Event::EventStreamHandler + { + typedef std::function<void(const RecordsEvent&)> RecordsEventCallback; + typedef std::function<void(const StatsEvent&)> StatsEventCallback; + typedef std::function<void(const ProgressEvent&)> ProgressEventCallback; + typedef std::function<void()> ContinuationEventCallback; + typedef std::function<void()> EndEventCallback; + typedef std::function<void(const Aws::Client::AWSError<S3Errors>& error)> ErrorCallback; + + public: + SelectObjectContentHandler(); + SelectObjectContentHandler& operator=(const SelectObjectContentHandler& handler) = default; + + virtual void OnEvent() override; + + inline void SetRecordsEventCallback(const RecordsEventCallback& callback) { m_onRecordsEvent = callback; } + inline void SetStatsEventCallback(const StatsEventCallback& callback) { m_onStatsEvent = callback; } + inline void SetProgressEventCallback(const ProgressEventCallback& callback) { m_onProgressEvent = callback; } + inline void SetContinuationEventCallback(const ContinuationEventCallback& callback) { m_onContinuationEvent = callback; } + inline void SetEndEventCallback(const EndEventCallback& callback) { m_onEndEvent = callback; } + inline void SetOnErrorCallback(const ErrorCallback& callback) { m_onError = callback; } + + private: + void HandleEventInMessage(); + void HandleErrorInMessage(); + void MarshallError(const Aws::String& errorCode, const Aws::String& errorMessage); + + RecordsEventCallback m_onRecordsEvent; + StatsEventCallback m_onStatsEvent; + ProgressEventCallback m_onProgressEvent; + ContinuationEventCallback m_onContinuationEvent; + EndEventCallback m_onEndEvent; + ErrorCallback m_onError; + }; + +namespace SelectObjectContentEventMapper +{ + AWS_S3_API SelectObjectContentEventType GetSelectObjectContentEventTypeForName(const Aws::String& name); + + AWS_S3_API Aws::String GetNameForSelectObjectContentEventType(SelectObjectContentEventType value); +} // namespace SelectObjectContentEventMapper +} // namespace Model +} // namespace S3 +} // namespace Aws |