24 #include <curlpp/Easy.hpp>
26 #include "s3_headers.h"
30 typedef cURLpp::Easy S3Connection;
42 std::ostringstream response;
57 S3ClientIO(std::istream * i, std::ostream * o) {Reset(i, o);}
59 void Reset(std::istream * i = NULL, std::ostream * o = NULL) {
67 ostrm = (o == NULL)? &response : o;
68 bytesToGet = 0; bytesReceived = 0;
69 bytesToPut = 0; bytesSent = 0;
70 printProgress =
false;
75 bool Success()
const {
return result[0] ==
'2' && !error;}
76 bool Failure()
const {
return !Success();}
79 virtual void WillStart();
82 virtual void DidFinish();
85 virtual size_t Write(
char * buf,
size_t size,
size_t nmemb);
88 virtual size_t Read(
char * buf,
size_t size,
size_t nmemb);
92 virtual size_t HandleHeader(
char * buf,
size_t size,
size_t nmemb);
94 friend std::ostream & operator<<(std::ostream & ostrm,
S3ClientIO & io);