AWS SDK for C++  0.12.9
AWS SDK for C++
ResponseStream.h
Go to the documentation of this file.
1 /*
2  * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #pragma once
17 
18 #include <aws/core/Core_EXPORTS.h>
20 
21 namespace Aws
22 {
23  namespace Utils
24  {
25  namespace Stream
26  {
31  {
32  public:
44  ResponseStream(const Aws::IOStreamFactory& factory);
45  ResponseStream(const ResponseStream&) = delete;
46  ~ResponseStream();
47 
51  ResponseStream& operator=(ResponseStream&&);
52  ResponseStream& operator=(const ResponseStream&) = delete;
53 
57  inline Aws::IOStream& GetUnderlyingStream() const { return *m_underlyingStream; }
58 
59  private:
60  void ReleaseStream();
61 
62  Aws::IOStream* m_underlyingStream;
63  };
64 
66  {
67  public:
69 
71  virtual ~DefaultUnderlyingStream();
72  };
73 
75 
76  } //namespace Stream
77  } //namespace Utils
78 } //namespace Aws
Aws::IOStream & GetUnderlyingStream() const
std::basic_iostream< char, std::char_traits< char > > IOStream
Definition: AWSStreamFwd.h:32
AWS_CORE_API Aws::IOStream * DefaultResponseStreamFactoryMethod()
#define AWS_CORE_API
Definition: Core_EXPORTS.h:30
std::function< Aws::IOStream *(void) > IOStreamFactory
Definition: AWSStreamFwd.h:35
JSON (JavaScript Object Notation).