Function System

[中文]

API Reference

Function Definition

Public header: #include "brookesia/service_manager/function/definition.hpp"

Header File

Function Registry

Public header: #include "brookesia/service_manager/function/registry.hpp"

Header File

Classes

class FunctionRegistry

Registry of callable service functions and their schemas.

Public Functions

bool add(FunctionSchema func_schema, FunctionHandler func_handler)

Register a function schema and its handler.

Parameters
  • func_schema[in] Function metadata.

  • func_handler[in] Handler that executes the function.

Returns

true on success, false if the function name already exists.

bool remove(const std::string &func_name)

Remove a registered function.

Parameters

func_name[in] Function name to remove.

Returns

true if the function was removed.

bool remove_all()

Remove every registered function.

Returns

true if the registry was cleared successfully.

FunctionResult call(const std::string &func_name, FunctionParameterMap parameters)

Validate parameters and invoke a registered function.

Parameters
  • func_name[in] Function name to call.

  • parameters[in] Parameter map passed to the handler.

Returns

FunctionResult Execution result or validation failure information.

inline const FunctionSchema *get_schema(const std::string &func_name)

Look up the schema for a registered function.

Parameters

func_name[in] Function name to query.

Returns

const FunctionSchema* Pointer to the schema, or nullptr if not found.

std::vector<FunctionSchema> get_schemas() const

Get a snapshot of all registered function schemas.

Returns

std::vector<FunctionSchema> Copy of the registered schemas.

boost::json::array get_schemas_json()

Export all registered function schemas as JSON.

Returns

boost::json::array JSON representation of every schema.

inline bool has(const std::string &func_name)

Check whether a function is registered.

Parameters

func_name[in] Function name to check.

Returns

true if the function exists.

inline size_t get_count()

Get the number of registered functions.

Returns

size_t Count of registered functions.