1
5#pragma once
6
7#include <aws/core/Core_EXPORTS.h>
8#include <aws/core/auth/AWSAuthSigner.h>
9#include <aws/common/array_list.h>
10
11#include <mutex>
12#include <condition_variable>
13#include <streambuf>
14#include <ios>
15#include <cassert>
16
17namespace Aws18{
19 namespace Utils
20 {
21 namespace Stream
22 {
30 {
31 public:
32
34
37
43
44 protected:
45 std::streampos seekoff(std::streamoff off, std::ios_base::seekdir dir, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out) override; 46 std::streampos seekpos(std::streampos pos, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out) override;47
53
55
56 private:
60 std::mutex m_lock;
61 std::condition_variable m_signal;
62 bool m_eofInput = false;
63 bool m_eofOutput = false;
65 };
66 }
67 }
68}
int sync() override
int uflow() override
int underflow() override
std::streamsize showmanyc() override
int overflow(int ch) override
void FlushPutArea()
void CloseStream()
std::streampos seekoff(std::streamoff off, std::ios_base::seekdir dir, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) override
void SetEofInput(Aws::IOStream *pStreamToClose=nullptr)
ConcurrentStreamBuf(size_t bufferLength=8 *1024)
std::streampos seekpos(std::streampos pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) override
bool WaitForDrain(int64_t timeoutMs)
std::basic_iostream< char, std::char_traits< char > > IOStream
std::vector< T, Aws::Allocator< T > > Vector
ncG1vNJzZmirlKB7ornAs6anmaeoe6S7zGiaqahflr2qe6t6i36LhGSuuL%2BMnKepZaOZuG6vzqucaKCkorlwq8KopZytoqeyr8C%2BrKurnZGirKPBxZhvoZejpMKzr8Rnn62lnA%3D%3D