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