Feature Macros

Several advanced HFSM2 features are disabled by default to improve build times for the average case, and are explicitly enabled using feature macros:

Macro

Feature

API

HFSM2_ENABLE_ALL

All Advanced

Features

See below

HFSM2_ENABLE_UTILITY_THEORY

Utility Theory Transitions

Config::RankT<> Config::UtilityT<> Config::RandomT<>

void *Root::utilize()

void *Root::randomize()

void FullControl::utilize()

void FullControl::randomize()

void Plan::utilize()

void Plan::randomize()

void LoggerInterface::recordUtilityResolution() void LoggerInterface::recordRandomResolution()

HFSM2_ENABLE_PLANS

Plans

struct Plan struct ConstPlan void State::planSucceeded() void State::planFailed() ConstPlan Control::plan() Plan PlanControl::plan() void FullControl::succeed() void FullControl::fail() void LoggerInterface::recordTaskStatus() void LoggerInterface::recordPlanStatus()

HFSM2_ENABLE_SERIALIZATION

Serialization

struct SerialBuffer

void *Root::load()

void *Root::load()

HFSM2_ENABLE_TRANSITION_HISTORY

Transition

History

struct Transition

struct TransitionHistory

TransitionHistory *Root::transitionHistory()

void *Root::replayTransition()

void *Root::replayTransitions()

HFSM2_ENABLE_STRUCTURE_REPORT

Structure

Report

struct StructureEntry

struct Structure

Structure *Root::structure()

struct ActivityHistory

ActivityHistory *Root::activityHistory()

HFSM2_ENABLE_VERBOSE_DEBUG_LOGand / or

HFSM2_ENABLE_LOG_INTERFACE

Logging

void *Root::attachLogger() struct LoggerInterface void LoggerInterface::recordMethod() void LoggerInterface::recordTransition() void LoggerInterface::recordTaskStatus() void LoggerInterface::recordPlanStatus() void LoggerInterface::recordCancelledPending()

void LoggerInterface::recordUtilityResolution() void LoggerInterface::recordRandomResolution()

Last updated