ISubsystem
ISubsystem
defines a lifecycle interface for engine components that require explicit startup and shutdown phases.
class ISubsystem {
public:
virtual ~ISubsystem() = default;
virtual void start() = 0;
virtual void stop() = 0;
};
Purpose
- Provide deterministic initialization and teardown hooks for stateful modules in the system.
Responsibilities
Method | Description |
---|---|
start | Called during engine bootstrapping. |
stop | Called during shutdown or reset. |
Notes
- Used by core modules like
CandleAggregator
,Strategy
,ExecutionTracker
, etc. - Lifecycle is typically orchestrated by the engine or test harness.
- No assumptions about threading — start/stop are always externally coordinated.