// file : brep/options.cli -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file include ; include ; // uint16_t include ; namespace brep { // Web module configuration options. // namespace options { class module { std::uint16_t verb = 0; butl::dir_path root = "/"; }; class db { std::string db-host = "localhost"; std::uint16_t db-port = 5432; }; class package_search: module, db { std::uint16_t results-on-page = 10; std::uint16_t pages-in-pager = 10; }; class package_details: module, db { std::uint16_t results-on-page = 10; std::uint16_t pages-in-pager = 10; std::uint16_t description-length = 400; }; class package_version_details: module, db { std::uint16_t description-length = 400; std::uint16_t changes-length = 800; }; class repository_details: module, db { }; } // Web module HTTP request parameters. // namespace params { // Use parameters long names in the C++ code, short aliases (if present) // in HTTP URL. // class package_search { // Display package search result list starting from this page. // std::uint16_t page | p = 0; // Package search criteria. // std::string query | q = ""; }; class package_details { // Display package version search result list starting from this page. // std::uint16_t page | p = 0; // Package version search criteria. // std::string query | q = ""; // Full page variant. // // @@ Shouldn't we use one letter alias for URL as well ? // I like full. It is descriptive. q= is kind now a convention. // bool full = false; }; class package_version_details { // Full page variant. // bool full = false; }; } }