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.