AWS SDK for C++: src/aws-cpp-sdk-core/include/aws/core/utils/stream/ConcurrentStreamBuf.h Source Fil

Posted by Na Lin on Tuesday, June 11, 2024

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 Aws

18{

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