.. _program_listing_file_falcon_commandsource.hpp: Program Listing for File commandsource.hpp ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``falcon/commandsource.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // --------------------------------------------------------------------- // This file is part of falcon-core. // // Copyright (C) 2015, 2016, 2017 Neuro-Electronics Research Flanders // // Falcon-server is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Falcon-server is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with falcon-core. If not, see . // --------------------------------------------------------------------- #pragma once #include #include #include #include #include "utilities/keyboard.hpp" namespace commands { class CommandSource { public: virtual bool getcommand(std::deque &command) { return false; } virtual bool sendreply(const std::deque &command, std::deque &reply) { return false; } }; class CommandLineCommands : public CommandSource { public: void AddCommand(std::deque command); bool getcommand(std::deque &command); bool sendreply(const std::deque &command, std::deque &reply); protected: std::deque> queued_commands_; }; class KeyboardCommands : public CommandSource { public: KeyboardCommands(); ~KeyboardCommands(); bool getcommand(std::deque &command); bool sendreply(const std::deque &command, std::deque &reply); }; class ZMQCommands : public CommandSource { public: zmq::socket_t *socket; ZMQCommands(zmq::context_t &context, int port); ~ZMQCommands(); bool getcommand(std::deque &command); bool sendreply(const std::deque &command, std::deque &reply); }; } // namespace commands