Goby3 3.7.0
2026.11.12
Loading...
Searching...
No Matches
model.h File Reference
#include <algorithm>
#include <cctype>
#include <cstdint>
#include <cstdlib>
#include <filesystem>
#include <fstream>
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <ostream>
#include <regex>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include <yaml-cpp/yaml.h>
#include "goby/middleware/group.h"
#include "goby/middleware/tool/interface/pubsub_entry.h"

Go to the source code of this file.

Classes

struct  goby::middleware::tool::interface::Issue
 A problem found while loading or checking a deployment. More...
 
struct  goby::middleware::tool::interface::Issue::Subject
 The publication or subscription an issue is about, when there is one. More...
 
class  goby::middleware::tool::interface::PublishIndexer
 Hands out the per-layer publication numbers (P0, P1, ...) shown in diagrams. More...
 
struct  goby::middleware::tool::interface::Thread
 
struct  goby::middleware::tool::interface::Application
 
struct  goby::middleware::tool::interface::Module
 
struct  goby::middleware::tool::interface::SystemdSettings
 systemd: settings, on a run: entry or as a platform's defaults More...
 
struct  goby::middleware::tool::interface::LaunchEntry
 How one run: entry is started by goby_launch. More...
 
struct  goby::middleware::tool::interface::LaunchSettings
 A platform's launch: settings. More...
 
struct  goby::middleware::tool::interface::PlatformSystemd
 A platform's systemd: settings. More...
 
struct  goby::middleware::tool::interface::Platform
 
struct  goby::middleware::tool::interface::Deployment
 
struct  goby::middleware::tool::interface::LoadParams
 Where to find interface files and the values of ${NAME} in a deployment file. More...
 
struct  goby::middleware::tool::interface::detail::Bind
 One bind: entry of a platform or of an application in its run: list. More...
 
struct  goby::middleware::tool::interface::detail::Bind::Concrete
 
struct  goby::middleware::tool::interface::detail::RunRef
 
struct  goby::middleware::tool::interface::detail::ModuleRef
 
struct  goby::middleware::tool::interface::detail::PlatformRef
 
class  goby::middleware::tool::interface::detail::Arithmetic
 
class  goby::middleware::tool::interface::detail::InterfaceFinder
 Finds interface files by path, or by the application: they declare. More...
 

Namespaces

namespace  goby
 The global namespace for the Goby project.
 
namespace  goby::middleware
 Objects implementing the Goby nested middleware.
 
namespace  goby::middleware::tool
 
namespace  goby::middleware::tool::interface
 
namespace  goby::middleware::tool::interface::detail
 

Typedefs

using goby::middleware::tool::interface::Issues = std::vector< Issue >
 
using goby::middleware::tool::interface::KeyValues = std::vector< std::pair< std::string, std::string > >
 

Functions

void goby::middleware::tool::interface::add_issue (Issues &issues, Issue::Severity severity, std::string code, std::string message, std::string location="")
 
std::ostream & goby::middleware::tool::interface::operator<< (std::ostream &os, const Issue &issue)
 
bool goby::middleware::tool::interface::has_errors (const Issues &issues)
 
std::string goby::middleware::tool::interface::detail::expand_variables (const std::string &text, const std::map< std::string, std::string > &defines, std::set< std::string > &unset)
 Replace ${NAME} and ${NAME:-default} from defines, then the environment.
 
bool goby::middleware::tool::interface::detail::load_yaml_text (const std::string &text, const std::string &path, const std::string &code, const std::string &location, Issues &issues, YAML::Node &yaml)
 
bool goby::middleware::tool::interface::detail::load_yaml (const std::string &path, const std::string &code, const std::string &location, Issues &issues, YAML::Node &yaml)
 
std::vector< std::string > goby::middleware::tool::interface::detail::read_list (const YAML::Node &node)
 
bool goby::middleware::tool::interface::detail::layer_from_name (const std::string &name, Layer &layer)
 
std::regex goby::middleware::tool::interface::detail::glob_regex (const std::string &glob)
 
bool goby::middleware::tool::interface::detail::eval_numeric (const std::string &text, const std::vector< std::uint32_t > &instances, std::set< std::uint32_t > &values, std::string &error)
 Evaluate a bind's numeric: "5", "151-153", or arithmetic with ${instance}, once per instance given.
 
std::vector< std::shared_ptr< Bind > > goby::middleware::tool::interface::detail::read_binds (const YAML::Node &node, const std::string &location, Issues &issues)
 
Application::Binder goby::middleware::tool::interface::detail::make_binder (std::vector< std::shared_ptr< Bind > > binds, std::vector< std::uint32_t > instances)
 
bool goby::middleware::tool::interface::detail::valid_kill (const std::string &kill)
 
KeyValues goby::middleware::tool::interface::detail::read_env (const YAML::Node &node, const std::string &location, Issues &issues)
 
SystemdSettings goby::middleware::tool::interface::detail::read_systemd_settings (const YAML::Node &node, const std::string &location, Issues &issues)
 
bool goby::middleware::tool::interface::detail::read_launch (const YAML::Node &entry, RunRef &ref, Issues &issues)
 
LaunchSettings goby::middleware::tool::interface::detail::read_launch_settings (const YAML::Node &node, const std::string &location, Issues &issues)
 
std::string goby::middleware::tool::interface::detail::with_instance (std::string text, const std::vector< std::uint32_t > &instances)
 
LaunchSettings goby::middleware::tool::interface::detail::for_instance (LaunchSettings settings, const std::vector< std::uint32_t > &instances)
 
PlatformSystemd goby::middleware::tool::interface::detail::read_platform_systemd (const YAML::Node &node, const std::string &location, Issues &issues)
 
SystemdSettings goby::middleware::tool::interface::detail::for_instance (SystemdSettings settings, const std::vector< std::uint32_t > &instances)
 
LaunchEntry goby::middleware::tool::interface::detail::for_instance (LaunchEntry entry, const std::vector< std::uint32_t > &instances)
 
std::vector< RunRef > goby::middleware::tool::interface::detail::read_run (const YAML::Node &node, bool legacy, const std::string &location, Issues &issues)
 
bool goby::middleware::tool::interface::detail::read_applications (const YAML::Node &node, const std::string &location, std::vector< RunRef > &refs, Issues &issues)
 Reads the application list of a platform or module: run: (by application name) or the older interfaces: (by file)
 
std::string goby::middleware::tool::interface::detail::declared_application (const std::string &path)
 The application an interface file declares, or "" if it is not one (generated interface files start with "application: <name>")
 
void goby::middleware::tool::interface::detail::apply_necessity_overrides (const YAML::Node &node, Deployment &deployment, Issues &issues)
 Apply a deployment's necessity: list, which sets the necessity of the subscriptions it selects whatever the code said.
 
std::vector< std::string > goby::middleware::tool::interface::detail::search_dirs (const std::string &deployment_path, const LoadParams &params)
 
Deployment goby::middleware::tool::interface::load_deployment (const std::string &path, Issues &issues, const LoadParams &params=LoadParams())
 Load a deployment file, or a single interface file as a one-platform stub deployment.