提交 d48e624b 编写于 作者: P Peifeng Qiu 提交者: Adam Lee

s3ext: merge ReaderParams and WriterParams

上级 73e85698
#ifndef __GP_EXT_READER_H__
#define __GP_EXT_READER_H__
#include "reader_params.h"
#include "s3params.h"
class Reader {
public:
......
#ifndef INCLUDE_READER_PARAMS_H_
#define INCLUDE_READER_PARAMS_H_
#ifndef __S3_PARAMS_H__
#define __S3_PARAMS_H__
#include <string>
......@@ -7,11 +7,11 @@
using std::string;
class ReaderParams {
class S3Params {
public:
ReaderParams() : keySize(0), chunkSize(0), numOfChunks(0), segId(0), segNum(1) {
S3Params() : keySize(0), chunkSize(0), numOfChunks(0), segId(0), segNum(1) {
}
virtual ~ReaderParams() {
virtual ~S3Params() {
}
uint64_t getChunkSize() const {
......@@ -30,14 +30,6 @@ class ReaderParams {
this->cred = cred;
}
const string& getKeyUrl() const {
return keyUrl;
}
void setKeyUrl(const string& keyUrl) {
this->keyUrl = keyUrl;
}
const string& getRegion() const {
return region;
}
......@@ -46,20 +38,12 @@ class ReaderParams {
this->region = region;
}
uint64_t getKeySize() const {
return keySize;
}
void setKeySize(uint64_t size) {
this->keySize = size;
}
const string& getUrlToLoad() const {
return urlToLoad;
const string& getKeyUrl() const {
return keyUrl;
}
void setUrlToLoad(const string& url) {
this->urlToLoad = url;
void setKeyUrl(const string& url) {
this->keyUrl = url;
}
uint64_t getSegId() const {
......@@ -86,11 +70,29 @@ class ReaderParams {
this->numOfChunks = numOfChunks;
}
uint64_t getKeySize() const {
return keySize;
}
void setKeySize(uint64_t size) {
this->keySize = size;
}
const string& getBaseUrl() const {
return baseUrl;
}
void setBaseUrl(const string& url) {
this->baseUrl = url;
}
private:
string urlToLoad; // original url to read/write.
string keyUrl; // key url in s3 bucket.
string region;
string baseUrl; // original url to read/write.
string keyUrl;
uint64_t keySize; // key/file size.
string region;
uint64_t chunkSize; // chunk size
uint64_t numOfChunks; // number of chunks(threads).
S3Credential cred;
......@@ -98,4 +100,8 @@ class ReaderParams {
uint64_t segNum;
};
#endif /* INCLUDE_READER_PARAMS_H_ */
class WriterParams : public S3Params {};
class ReaderParams : public S3Params {};
#endif
\ No newline at end of file
#ifndef __GP_EXT_WRITER_H__
#define __GP_EXT_WRITER_H__
#include "writer_params.h"
#include "s3params.h"
class Writer {
public:
......
#ifndef INCLUDE_WRITER_PARAMS_H_
#define INCLUDE_WRITER_PARAMS_H_
#include <string>
#include "s3common.h"
using std::string;
class WriterParams {
public:
WriterParams() : chunkSize(0), numOfChunks(0), segId(0), segNum(1) {
}
virtual ~WriterParams() {
}
uint64_t getChunkSize() const {
return chunkSize;
}
void setChunkSize(uint64_t chunkSize) {
this->chunkSize = chunkSize;
}
const S3Credential& getCred() const {
return cred;
}
void setCred(const S3Credential& cred) {
this->cred = cred;
}
const string& getRegion() const {
return region;
}
void setRegion(const string& region) {
this->region = region;
}
const string& getKeyUrl() const {
return keyUrl;
}
void setKeyUrl(const string& url) {
this->keyUrl = url;
}
uint64_t getSegId() const {
return segId;
}
void setSegId(uint64_t segId) {
this->segId = segId;
}
uint64_t getSegNum() const {
return segNum;
}
void setSegNum(uint64_t segNum) {
this->segNum = segNum;
}
uint64_t getNumOfChunks() const {
return numOfChunks;
}
void setNumOfChunks(uint64_t numOfChunks) {
this->numOfChunks = numOfChunks;
}
private:
string keyUrl;
string region;
uint64_t chunkSize; // chunk size
uint64_t numOfChunks; // number of chunks(threads).
S3Credential cred;
uint64_t segId;
uint64_t segNum;
};
#endif /* INCLUDE_WRITER_PARAMS_H_ */
......@@ -69,7 +69,7 @@ GPReader::GPReader(const string& url) {
}
void GPReader::constructReaderParams(const string& url) {
this->params.setUrlToLoad(url);
this->params.setBaseUrl(url);
this->params.setSegId(s3ext_segid);
this->params.setSegNum(s3ext_segnum);
this->params.setNumOfChunks(s3ext_threadnum);
......
......@@ -24,7 +24,7 @@ GPWriter::GPWriter(const string& url) {
}
void GPWriter::constructWriterParams(const string& url) {
this->params.setKeyUrl(url);
this->params.setBaseUrl(url);
this->params.setSegId(s3ext_segid);
this->params.setSegNum(s3ext_segnum);
this->params.setNumOfChunks(s3ext_threadnum);
......@@ -38,7 +38,7 @@ void GPWriter::constructWriterParams(const string& url) {
void GPWriter::open(const WriterParams& params) {
this->s3service.setRESTfulService(this->restfulServicePtr);
this->params.setKeyUrl(this->genUniqueKeyName(this->params.getKeyUrl()));
this->params.setKeyUrl(this->genUniqueKeyName(this->params.getBaseUrl()));
this->keyWriter.setS3interface(&this->s3service);
this->keyWriter.open(this->params);
}
......
......@@ -5,12 +5,12 @@
#include <inttypes.h>
#include "reader.h"
#include "reader_params.h"
#include "s3bucket_reader.h"
#include "s3common.h"
#include "s3conf.h"
#include "s3log.h"
#include "s3macros.h"
#include "s3params.h"
#include "s3utils.h"
using std::string;
......@@ -36,7 +36,7 @@ S3BucketReader::~S3BucketReader() {
}
void S3BucketReader::open(const ReaderParams &params) {
this->url = params.getUrlToLoad();
this->url = params.getBaseUrl();
this->segId = params.getSegId();
this->segNum = params.getSegNum();
this->cred = params.getCred();
......
......@@ -2,8 +2,8 @@
#include "gtest/gtest.h"
#include "mock_classes.h"
#include "reader_params.h"
#include "s3bucket_reader.cpp"
#include "s3params.h"
using ::testing::AtLeast;
using ::testing::Return;
......@@ -43,7 +43,7 @@ class S3BucketReaderTest : public testing::Test {
TEST_F(S3BucketReaderTest, OpenInvalidURL) {
string url = "https://s3-us-east-2.amazon.com/s3test.pivotal.io/whatever";
params.setUrlToLoad(url);
params.setBaseUrl(url);
EXPECT_THROW(bucketReader->open(params), std::runtime_error);
}
......@@ -53,7 +53,7 @@ TEST_F(S3BucketReaderTest, OpenURL) {
.WillOnce(Return(ListBucketResult()));
string url = "https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever";
params.setUrlToLoad(url);
params.setBaseUrl(url);
EXPECT_NO_THROW(bucketReader->open(params));
}
......@@ -62,7 +62,7 @@ TEST_F(S3BucketReaderTest, OpenThrowExceptionWhenS3InterfaceIsNULL) {
bucketReader->setS3interface(NULL);
string url = "https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever";
params.setUrlToLoad(url);
params.setBaseUrl(url);
EXPECT_THROW(bucketReader->open(params), std::runtime_error);
}
......@@ -145,7 +145,7 @@ TEST_F(S3BucketReaderTest, ReaderReturnZeroForEmptyBucket) {
.Times(1)
.WillOnce(Return(ListBucketResult()));
params.setUrlToLoad("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
params.setBaseUrl("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
bucketReader->open(params);
bucketReader->setUpstreamReader(&s3reader);
EXPECT_EQ(0, bucketReader->read(buf, sizeof(buf)));
......@@ -168,7 +168,7 @@ TEST_F(S3BucketReaderTest, ReadBucketWithSingleFile) {
params.setSegId(0);
params.setSegNum(1);
params.setUrlToLoad("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
params.setBaseUrl("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
bucketReader->open(params);
bucketReader->setUpstreamReader(&s3reader);
......@@ -195,7 +195,7 @@ TEST_F(S3BucketReaderTest, ReadBuckeWithOneEmptyFileOneNonEmptyFile) {
params.setSegId(0);
params.setSegNum(1);
params.setUrlToLoad("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
params.setBaseUrl("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
bucketReader->open(params);
bucketReader->setUpstreamReader(&s3reader);
......@@ -211,7 +211,7 @@ TEST_F(S3BucketReaderTest, ReaderShouldSkipIfFileIsNotForThisSegment) {
params.setSegId(10);
params.setSegNum(16);
params.setUrlToLoad("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
params.setBaseUrl("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
bucketReader->open(params);
bucketReader->setUpstreamReader(&s3reader);
......@@ -234,7 +234,7 @@ TEST_F(S3BucketReaderTest, UpstreamReaderThrowException) {
params.setSegId(0);
params.setSegNum(1);
params.setUrlToLoad("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
params.setBaseUrl("https://s3-us-east-2.amazonaws.com/s3test.pivotal.io/whatever");
bucketReader->open(params);
bucketReader->setUpstreamReader(&s3reader);
......
......@@ -2,8 +2,8 @@
#include "gtest/gtest.h"
#include "mock_classes.h"
#include "reader_params.h"
#include "s3key_reader.cpp"
#include "s3params.h"
using ::testing::AtLeast;
using ::testing::AtMost;
......
......@@ -3,7 +3,7 @@
#include "mock_classes.h"
#include "s3key_writer.cpp"
#include "writer_params.h"
#include "s3params.h"
using ::testing::AtLeast;
using ::testing::AtMost;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册