FinanceSim 0.1.0
Financial Simulation Library
Loading...
Searching...
No Matches
financesim::IncomeBase Class Reference

#include <income_base.hpp>

Inheritance diagram for financesim::IncomeBase:
[legend]
Collaboration diagram for financesim::IncomeBase:
[legend]

Public Member Functions

 IncomeBase (std::string id, std::string name, Schedule schedule)
 
virtual ~IncomeBase ()=default
 
const std::string & id () const override
 Unique identifier for this model instance.
 
const std::string & name () const override
 Human-readable name/description.
 
const Scheduleschedule () const override
 Get the model's execution schedule.
 
void initialize (EventBus &bus) override
 
void update (SimTime time) override
 
void finalize () override
 
void reset () override
 Reset model to initial state (for replay)
 
- Public Member Functions inherited from financesim::Model
virtual ~Model ()=default
 

Protected Member Functions

EventBusbus ()
 
template<typename EventType , typename... Args>
void emit (SimTime time, Args &&... args)
 
- Protected Member Functions inherited from financesim::Model
 Model ()=default
 

Private Attributes

std::string id_
 
std::string name_
 
Schedule schedule_
 
EventBusbus_ = nullptr
 

Detailed Description

Base class for income models Derive from this to create specific income types (salary, dividends, etc.)

Definition at line 9 of file income_base.hpp.

Constructor & Destructor Documentation

◆ IncomeBase()

financesim::IncomeBase::IncomeBase ( std::string  id,
std::string  name,
Schedule  schedule 
)

Definition at line 5 of file income_base.cpp.

◆ ~IncomeBase()

virtual financesim::IncomeBase::~IncomeBase ( )
virtualdefault

Member Function Documentation

◆ bus()

EventBus & financesim::IncomeBase::bus ( )
inlineprotected

Definition at line 24 of file income_base.hpp.

References bus_.

Referenced by initialize().

Here is the caller graph for this function:

◆ emit()

template<typename EventType , typename... Args>
void financesim::IncomeBase::emit ( SimTime  time,
Args &&...  args 
)
inlineprotected

Definition at line 27 of file income_base.hpp.

References bus_, emit(), id_, and financesim::EventBus::publish().

Referenced by emit(), and financesim::CareerJob::update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finalize()

void financesim::IncomeBase::finalize ( )
overridevirtual

Called once after simulation ends Use for cleanup, final calculations, releasing resources

Implements financesim::Model.

Definition at line 19 of file income_base.cpp.

◆ id()

const std::string & financesim::IncomeBase::id ( ) const
inlineoverridevirtual

Unique identifier for this model instance.

Implements financesim::Model.

Definition at line 14 of file income_base.hpp.

References id_.

◆ initialize()

void financesim::IncomeBase::initialize ( EventBus bus)
overridevirtual

Called once before simulation starts Use for setup, subscribing to events, allocating resources

Implements financesim::Model.

Definition at line 10 of file income_base.cpp.

References bus(), and bus_.

Here is the call graph for this function:

◆ name()

const std::string & financesim::IncomeBase::name ( ) const
inlineoverridevirtual

Human-readable name/description.

Implements financesim::Model.

Definition at line 15 of file income_base.hpp.

References name_.

◆ reset()

void financesim::IncomeBase::reset ( )
overridevirtual

Reset model to initial state (for replay)

Implements financesim::Model.

Definition at line 23 of file income_base.cpp.

References bus_.

Referenced by financesim::CareerJob::reset().

Here is the caller graph for this function:

◆ schedule()

const Schedule & financesim::IncomeBase::schedule ( ) const
inlineoverridevirtual

Get the model's execution schedule.

Implements financesim::Model.

Definition at line 16 of file income_base.hpp.

References schedule_.

◆ update()

void financesim::IncomeBase::update ( SimTime  time)
overridevirtual

Called at each scheduled execution time Must be deterministic given the same inputs and time

Implements financesim::Model.

Definition at line 15 of file income_base.cpp.

Member Data Documentation

◆ bus_

EventBus* financesim::IncomeBase::bus_ = nullptr
private

Definition at line 41 of file income_base.hpp.

Referenced by bus(), emit(), initialize(), and reset().

◆ id_

std::string financesim::IncomeBase::id_
private

Definition at line 38 of file income_base.hpp.

Referenced by emit(), and id().

◆ name_

std::string financesim::IncomeBase::name_
private

Definition at line 39 of file income_base.hpp.

Referenced by name().

◆ schedule_

Schedule financesim::IncomeBase::schedule_
private

Definition at line 40 of file income_base.hpp.

Referenced by schedule().


The documentation for this class was generated from the following files: