//////////////////////////////////////////////////////////////////////////////// /// @brief AvocadoDB server /// /// @file /// /// DISCLAIMER /// /// Copyright 2004-2012 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 Dr. Frank Celler /// @author Copyright 2010-2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// #include "Basics/Common.h" #include "RestServer/AvocadoServer.h" #include "ResultGenerator/Initialise.h" using namespace triagens; using namespace triagens::basics; using namespace triagens::rest; using namespace triagens::avocado; //////////////////////////////////////////////////////////////////////////////// /// @page StartStopTOC /// ///
    ///
  1. @ref StartStopDebug "Starting the Debug Shell"
  2. ///
  3. @ref StartStopHttp "Starting the HTTP Server"
  4. ///
  5. @ref StartStopOptions "Frequently Used Options"
  6. ///
//////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page StartStop Starting and Stopping the AvocadoDB /// /// The AvocadoDB has two mode of operation: as server, where it will answer to /// HTTP requests, see @ref HttpInterface, and a debug shell, where you can /// access the database directly. Using the debug shell allows you to issue all /// commands normally available in actions and transactions, see @ref /// AvocadoScript. /// /// You should never start more than one server for the same database, /// independent from the mode of operation. /// ///
/// @copydoc StartStopTOC /// /// @section StartStopDebug Starting the Debug Shell /// /// The following command starts a debug shell. See below for a list of /// frequently used options, see @ref CommandLine "here" for a complete list. /// /// @verbinclude start1 /// /// @section StartStopHttp Starting the HTTP Server /// /// The following command starts the AvocadoDB in server mode. You will be able /// to access the server using HTTP request on port 8529. See below for a list /// of frequently used options, see @ref CommandLine "here" for a complete list. /// /// @verbinclude start2 /// /// @section StartStopOptions Frequently Used Options /// /// The following command-line options are frequently used. For a full /// list of options see @ref CommandLine "here". /// /// @CMDOPT{@CA{database-directory}} /// /// Uses the @CA{database-directory} as base directory. There is an alternative /// version available for use in configuration files, see @ref /// CommandLineAvocado "here". /// /// @copydetails triagens::rest::ApplicationServerImpl::options /// /// @CMDOPT{--log @CA{level}} /// /// Allows the user to choose the level of information which is logged by the /// server. The @CA{level} is specified as a string and can be one of the /// following values: fatal, error, warning, info, debug, trace. For more /// information see @ref CommandLineLogging "here". /// /// @copydetails triagens::avocado::AvocadoServer::_httpPort /// /// @CMDOPT{--shell} /// /// Opens a debug shell instead of starting the HTTP server. //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page CommandLineTOC /// ///
    ///
  1. configuration
  2. ///
  3. daemon
  4. ///
  5. gid
  6. ///
  7. help
  8. ///
  9. pid-file
  10. ///
  11. uid
  12. ///
  13. version
  14. ///
//////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page CommandLine Command-Line Options /// /// @copydoc CommandLineTOC /// /// @section GeneralOptions General Options /// /// @copydetails triagens::rest::ApplicationServerImpl::initFile /// /// @CMDOPT{--daemon} /// /// Runs the server as a daemon (as a background process). This parameter can /// only be set if the pid (process id) file is specified. That is, unless a /// value to the parameter pid-file is given, then the server will report an /// error and exit. /// /// @copydetails triagens::rest::ApplicationServerImpl::gid /// /// @copydetails triagens::rest::ApplicationServerImpl::options /// /// @copydetails triagens::rest::AnyServer::_pidFile /// /// @CMDOPT{--show-io-backends} /// /// If this option is specified, then the server will list available backends /// and exit. This option is useful only when used in conjunction with the /// option scheduler.backend. An integer is returned (which is platform /// dependent) which indicates available backends on your platform. See libev /// for further details and for the meaning of the integer returned. This /// describes the allowed integers for @CODE{scheduler.backend}, see /// @ref CommandLineScheduler "here" for details. /// /// @CMDOPT{--supervisor} /// /// Executes the server in supervisor mode. In the event that the server /// unexpectedly terminates due to an internal error, the supervisor will /// automatically restart the server. Setting this flag automatically implies /// that the server will run as a daemon. Note that, as with the daemon flag, /// this flag requires that the pid-file parameter will set. /// /// @copydetails triagens::rest::ApplicationServerImpl::uid /// /// @copydetails triagens::rest::ApplicationServerImpl::version /// ///
/// Next steps: /// /// - @ref CommandLineAvocado "Command-Line Options for the AvocadoDB" /// - @ref CommandLineScheduler "Command-Line Options for Communication" /// - @ref CommandLineLogging "Command-Line Options for Logging" /// - @ref CommandLineRandom "Command-Line Options for Random Numbers" //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page CommandLineAvocadoTOC /// ///
    ///
  1. database.directory
  2. ///
  3. server.admin-port
  4. ///
  5. server.http-port
  6. ///
//////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page CommandLineAvocado Command-Line Options for the AvocadoDB /// /// @copydoc CommandLineAvocadoTOC ///
/// /// @copydetails triagens::avocado::AvocadoServer::_databasePath /// /// @copydetails triagens::avocado::AvocadoServer::_adminPort /// /// @copydetails triagens::avocado::AvocadoServer::_httpPort //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- public functions // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @addtogroup AvocadoDB /// @{ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @brief creates an application server //////////////////////////////////////////////////////////////////////////////// int main (int argc, char* argv[]) { TRIAGENS_RESULT_GENERATOR_INITIALISE; TRI_InitialiseVocBase(); // create and start a AvocadoDB server AvocadoServer server(argc, argv); int res = server.start(); // shutdown TRI_ShutdownVocBase(); TRIAGENS_RESULT_GENERATOR_SHUTDOWN; return res; } //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// // Local Variables: // mode: outline-minor // outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @\\}\\)" // End: