Skip to content
Snippets Groups Projects
Builder.cpp 1.02 KiB
Newer Older
Valerio Pastore's avatar
Valerio Pastore committed
#include <File_Receiver.h>
Valerio Pastore's avatar
Valerio Pastore committed
using namespace inaf::oasbo::Receivers;
Valerio Pastore's avatar
Valerio Pastore committed

Valerio Pastore's avatar
.  
Valerio Pastore committed
FileReceiverBuilder::FileReceiverBuilder() {
	this->reset();
Valerio Pastore's avatar
Valerio Pastore committed
}

FileReceiverBuilder::~FileReceiverBuilder() {
	delete rcv;
}

void FileReceiverBuilder::reset() {
Valerio Pastore's avatar
.  
Valerio Pastore committed
	this->rcv = new FileReceiver();
Valerio Pastore's avatar
Valerio Pastore committed
}

Valerio Pastore's avatar
.  
Valerio Pastore committed
FileReceiverBuilder* FileReceiverBuilder::configFrom(
		Configurators::BaseConfigurator &conf) {
Valerio Pastore's avatar
Valerio Pastore committed
	conf.readConfigFromSource(config_target);
	std::map<std::string, std::string> params = conf.getConfig();

Valerio Pastore's avatar
.  
Valerio Pastore committed
	std::string key = config_target + "_" + source_key;
Valerio Pastore's avatar
Valerio Pastore committed
	if (params.count(key) > 0)
		rcv->setHost(params[key]);

Valerio Pastore's avatar
.  
Valerio Pastore committed
	key = config_target + "_" + rate_key;
	if (params.count(key) > 0) {
Valerio Pastore's avatar
Valerio Pastore committed
		rcv->rate = std::stoi(params[key]);
	}
	return this;
}

FileReceiverBuilder* FileReceiverBuilder::setSource(std::string source) {
	rcv->setHost(source);
	return this;
}

FileReceiverBuilder* FileReceiverBuilder::setRate(int rate) {
	rcv->rate = rate;
	return this;
}

FileReceiver* FileReceiverBuilder::getReceiver() {
	FileReceiver *result = this->rcv;
	this->reset();
	return result;
}