//////////////////////////////////////////////////////////////////////////////// /// @brief version request handler /// /// @file /// /// DISCLAIMER /// /// Copyright 2004-2013 triAGENS GmbH, Cologne, Germany /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http://www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// /// Copyright holder is triAGENS GmbH, Cologne, Germany /// /// @author Achim Brandt /// @author Copyright 2010-2013, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// #ifndef TRIAGENS_ADMIN_REST_VERSION_HANDLER_H #define TRIAGENS_ADMIN_REST_VERSION_HANDLER_H 1 #include "Admin/RestBaseHandler.h" #include "Rest/HttpResponse.h" namespace triagens { namespace admin { // ----------------------------------------------------------------------------- // --SECTION-- class RestVersionHandler // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @addtogroup RestServer /// @{ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @brief version request handler //////////////////////////////////////////////////////////////////////////////// class RestVersionHandler : public RestBaseHandler { //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- public types // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @addtogroup ArangoDB /// @{ //////////////////////////////////////////////////////////////////////////////// public: //////////////////////////////////////////////////////////////////////////////// /// @brief constructor options //////////////////////////////////////////////////////////////////////////////// struct version_options_t { string _name; string _version; bool _isDirect; string _queue; }; //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- constructors and destructors // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @addtogroup RestServer /// @{ //////////////////////////////////////////////////////////////////////////////// public: //////////////////////////////////////////////////////////////////////////////// /// @brief constructor //////////////////////////////////////////////////////////////////////////////// RestVersionHandler (rest::HttpRequest* request, version_options_t const* data); //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- Handler methods // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @addtogroup RestServer /// @{ //////////////////////////////////////////////////////////////////////////////// public: //////////////////////////////////////////////////////////////////////////////// /// {@inheritDoc} //////////////////////////////////////////////////////////////////////////////// bool isDirect (); //////////////////////////////////////////////////////////////////////////////// /// {@inheritDoc} //////////////////////////////////////////////////////////////////////////////// string const& queue (); //////////////////////////////////////////////////////////////////////////////// /// @brief returns the server version number /// /// @RESTHEADER{GET /_admin/version,returns the server version number} /// /// @REST{GET /_admin/version} /// /// Returns an object containing the server name in the @LIT{server} attribute, /// and the current server version in the @LIT{version} attribute. /// /// @EXAMPLES /// /// @verbinclude rest-version /// /// @REST{GET /_admin/version?details=true} /// /// If the optional URL parameter @LIT{details} is set to @LIT{true}, then more /// server version details are returned in the @LIT{details} attribute. The /// details are returned as pairs of attribute name and value, which are all /// strings. The number of attributes may vary, depending on the server built /// and configuration. /// /// @EXAMPLES /// /// @verbinclude rest-version-details //////////////////////////////////////////////////////////////////////////////// status_e execute (); //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- private variables // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @addtogroup RestServer /// @{ //////////////////////////////////////////////////////////////////////////////// private: //////////////////////////////////////////////////////////////////////////////// /// @brief server name //////////////////////////////////////////////////////////////////////////////// string const& _name; //////////////////////////////////////////////////////////////////////////////// /// @brief version number //////////////////////////////////////////////////////////////////////////////// string const& _version; //////////////////////////////////////////////////////////////////////////////// /// @brief direct flag //////////////////////////////////////////////////////////////////////////////// bool _isDirect; //////////////////////////////////////////////////////////////////////////////// /// @brief queue flag //////////////////////////////////////////////////////////////////////////////// string const& _queue; }; } } //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// #endif // Local Variables: // mode: outline-minor // outline-regexp: "/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|/// @page\\|// --SECTION--\\|/// @\\}" // End: