/** * * @file * @author An Tao * @section LICENSE * * Copyright 2018, An Tao. All rights reserved. * Use of this source code is governed by a MIT license * that can be found in the License file. * * @section DESCRIPTION * */ #pragma once #include #include "CommandHandler.h" using namespace drogon; namespace drogon_ctl { class create_controller : public DrObject, public CommandHandler { public: virtual void handleCommand(std::vector ¶meters) override; virtual std::string script() override { return "create controller files"; } protected: enum ControllerType { Simple = 0, API, WebSocket }; void createSimpleController(std::vector &ctlNames, const std::string &namespaceName = ""); void createSimpleController(const std::string &ctlName, const std::string &namespaceName = ""); void createWebsockController(std::vector &ctlNames, const std::string &namespaceName = ""); void createWebsockController(const std::string &ctlName, const std::string &namespaceName = ""); void createApiController(std::vector &apiClasses); void createApiController(const std::string &className); void newSimpleControllerHeaderFile(std::ofstream &file, const std::string &ctlName, const std::string &namespaceName = ""); void newSimpleControllerSourceFile(std::ofstream &file, const std::string &ctlName, const std::string &namespaceName = ""); void newWebsockControllerHeaderFile(std::ofstream &file, const std::string &ctlName, const std::string &namespaceName = ""); void newWebsockControllerSourceFile(std::ofstream &file, const std::string &ctlName, const std::string &namespaceName = ""); void newApiControllerHeaderFile(std::ofstream &file, const std::string &className); void newApiControllerSourceFile(std::ofstream &file, const std::string &className, const std::string &filename); }; } // namespace drogon_ctl