#pragma once #include "redis_store_handler.h" #include #include namespace caffe2 { template class RedisStoreHandlerCreateOp final : public Operator { public: explicit RedisStoreHandlerCreateOp( const OperatorDef& operator_def, Workspace* ws) : Operator(operator_def, ws), host_( OperatorBase::template GetSingleArgument("host", "")), port_(OperatorBase::template GetSingleArgument("port", 0)), prefix_(OperatorBase::template GetSingleArgument( "prefix", "")) { CAFFE_ENFORCE_NE(host_, "", "host is a required argument"); CAFFE_ENFORCE_NE(port_, 0, "port is a required argument"); } bool RunOnDevice() override { auto ptr = std::unique_ptr( new RedisStoreHandler(host_, port_, prefix_)); *OperatorBase::Output>(HANDLER) = std::move(ptr); return true; } private: std::string host_; int port_; std::string prefix_; OUTPUT_TAGS(HANDLER); }; } // namespace caffe2