flimEngine
Alarmable Class Reference

#include <Alarmable.h>

Inheritance diagram for Alarmable:
Inheritance graph
Collaboration diagram for Alarmable:
Collaboration graph

Classes

struct  RegistrationData
 

Public Member Functions

 Alarmable ()
 
Alarmableoperator= (const Alarmable &)
 
virtual ~Alarmable ()
 
 Alarmable (const Alarmable &)
 
errcode SubmitAlarmDeregistration (AlarmableManager::ALARM_ID id)
 Submit alarm deregistration. More...
 
errcode SubmitAlarmRegistration (float t, AlarmableManager::ALARM_ID id)
 Submit alarm registration. More...
 
virtual void Alarm0 ()
 Alarm 0 callback. More...
 
virtual void Alarm1 ()
 Alarm 1 callback. More...
 
virtual void Alarm2 ()
 Alarm 2 callback. More...
 
float TimeLeft (AlarmableManager::ALARM_ID id)
 Time left on one of the alarms. More...
 
errcode ChangeTime (float t, AlarmableManager::ALARM_ID id)
 Change time. More...
 
errcode AddTime (float t, AlarmableManager::ALARM_ID id)
 Adds a time to 'id'. More...
 
errcode SubtractTime (float t, AlarmableManager::ALARM_ID id)
 Subtract time. More...
 
bool IsRegistered (AlarmableManager::ALARM_ID id)
 Query if 'id' is registered. More...
 
errcode SetDeletionIter (int alarmNumber, std::multimap< float, AlarmableManager::AlarmEvent >::const_iterator iter)
 
std::multimap< float, AlarmableManager::AlarmEvent >::const_iterator GetDeletionIter (int alarmNumber)
 
errcode SetRegistrationState (int alarmNumber, RegistrationState state)
 

Private Member Functions

void TriggerAlarm (AlarmableManager::ALARM_ID id)
 
errcode AlarmDeregistration (AlarmableManager::ALARM_ID id)
 
errcode AlarmRegistration (float t, AlarmableManager::ALARM_ID id)
 

Private Attributes

RegistrationData RegData [AlarmableManager::ALARM_NUMBER]
 

Friends

class AlarmRegistrationCommand
 
class AlarmDeregistrationCommand
 
class AlarmableManager
 

Constructor & Destructor Documentation

◆ Alarmable() [1/2]

Alarmable::Alarmable ( )

◆ ~Alarmable()

Alarmable::~Alarmable ( )
virtual

◆ Alarmable() [2/2]

Alarmable::Alarmable ( const Alarmable )

Member Function Documentation

◆ AddTime()

errcode Alarmable::AddTime ( float  t,
AlarmableManager::ALARM_ID  id 
)

Adds a time to 'id'.

Author
Jack Campbell
Date
3/12/2017
Parameters
tThe float to process.
idThe identifier.
Returns errcode::failure if id is not registered. Otherwise deregisters the alarm and registers with the time left plus the added time
// ALARM_0 was set to fire in 10,000 milliseconds
// I want to reset ALARM_0 and make it fire in 11,000 milliseconds
Returns
An errcode.

◆ AlarmDeregistration()

errcode Alarmable::AlarmDeregistration ( AlarmableManager::ALARM_ID  id)
private

◆ AlarmRegistration()

errcode Alarmable::AlarmRegistration ( float  t,
AlarmableManager::ALARM_ID  id 
)
private

◆ ChangeTime()

errcode Alarmable::ChangeTime ( float  t,
AlarmableManager::ALARM_ID  id 
)

Change time.

Author
Jack Campbell
Date
3/12/2017
Parameters
tThe float to process.
idThe identifier.
Returns errcode::failure if id is not registered. Otherwise deregisters the alarm and registers with the new time.
// I want to reset ALARM_0 and make it fire in 1000 milliseconds
Returns
An errcode.

◆ GetDeletionIter()

std::multimap< float, AlarmableManager::AlarmEvent >::const_iterator Alarmable::GetDeletionIter ( int  alarmNumber)

◆ IsRegistered()

bool Alarmable::IsRegistered ( AlarmableManager::ALARM_ID  id)

Query if 'id' is registered.

Author
Jack Campbell
Date
3/12/2017
Parameters
idThe alarm check.
Returns whether the alarm at the ID is currently set to fire or not.
Returns
True if registered, false if not.

◆ operator=()

Alarmable& Alarmable::operator= ( const Alarmable )

◆ SetDeletionIter()

errcode Alarmable::SetDeletionIter ( int  alarmNumber,
std::multimap< float, AlarmableManager::AlarmEvent >::const_iterator  iter 
)

◆ SetRegistrationState()

errcode Alarmable::SetRegistrationState ( int  alarmNumber,
RegistrationState  state 
)

◆ SubtractTime()

errcode Alarmable::SubtractTime ( float  t,
AlarmableManager::ALARM_ID  id 
)

Subtract time.

Author
Jack Campbell
Date
3/12/2017
Parameters
tThe float to process.
idThe identifier.
Returns errcode::failure if id is not registered. Otherwise deregisters the alarm and registers with the time left minues the subtracted time
// ALARM_0 was set to fire in 10,000 milliseconds
// I want to reset ALARM_0 and make it fire in 9,000 milliseconds
Returns
An errcode.

◆ TimeLeft()

float Alarmable::TimeLeft ( AlarmableManager::ALARM_ID  id)

Time left on one of the alarms.

Author
Jack Campbell
Date
3/12/2017
Parameters
idThe identifier.
You can use this method to query how much time remains on a registered alarm. Calling this on a deregistered alarm returns 0.
float timeLeftOnAlarm0 = TimeLeft(AlarmableManager::ALARM_0);
Returns
A float.

◆ TriggerAlarm()

void Alarmable::TriggerAlarm ( AlarmableManager::ALARM_ID  id)
private

Friends And Related Function Documentation

◆ AlarmableManager

friend class AlarmableManager
friend

◆ AlarmDeregistrationCommand

friend class AlarmDeregistrationCommand
friend

◆ AlarmRegistrationCommand

friend class AlarmRegistrationCommand
friend

Member Data Documentation

◆ RegData

RegistrationData Alarmable::RegData[AlarmableManager::ALARM_NUMBER]
private

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