sipxmedialib
Version 3.3
|
Posix implementation of periodic timer. More...
#include <MpMMTimerPosix.h>
Classes | |
class | PosixSignalReg |
Help class for signal registering. More... | |
Public Member Functions | |
Creators | |
MpMMTimerPosix (MpMMTimer::MMTimerType type) | |
~MpMMTimerPosix () | |
Manipulators | |
OsStatus | setNotification (OsNotification *notification) |
Set notification for the OsNotification timer type. More... | |
OsStatus | run (unsigned usecPeriodic) |
Start periodical firing. More... | |
OsStatus | stop () |
Stop periodical firing. More... | |
OsStatus | waitForNextTick () |
Accessors | |
OsStatus | getResolution (unsigned &resolution) |
Get resolution of timer in microseconds. More... | |
OsStatus | getPeriodRange (unsigned *pMinUSecs, unsigned *pMaxUSecs=NULL) |
Get the range of timer periods that can be generated. More... | |
OsTime | getAbsFireTime () const |
Public Member Functions inherited from MpMMTimer | |
MMTimerType | getTimerType () const |
Get the type of timer fire. More... | |
virtual | ~MpMMTimer () |
Destructor. More... | |
Static Public Member Functions | |
static void | signalHandler (int signum, siginfo_t *siginfo, void *context) |
Signal callback. More... | |
Inquiry | |
static PosixSignalReg * | getSignalDescriptor () |
Returns signal descriptor for thread blocking/unblocking operations. More... | |
Static Public Member Functions inherited from MpMMTimer | |
static MpMMTimer * | create (MMTimerType type, const UtlString &name="") |
Factory method to create timer class instance of the given type. More... | |
Static Public Attributes | |
static const char *const | TYPE = "POSIX Timer" |
Protected Member Functions | |
void | callback () |
Protected Member Functions inherited from MpMMTimer | |
MpMMTimer (MMTimerType type) | |
protected constructor, as this is an abstract class. More... | |
Protected Attributes | |
OsNotification * | mpNotification |
Notification object used to signal a tick of the timer. More... | |
UtlBoolean | mbTimerStarted |
Is timer started. More... | |
timer_t | mTimer |
Timer object. More... | |
sem_t | mSyncSemaphore |
Synchronization semaphore for linear operation. More... | |
Protected Attributes inherited from MpMMTimer | |
MMTimerType | mTimerType |
Static Private Member Functions | |
static void * | threadIoWrapper (void *arg) |
Private Attributes | |
pthread_t | mThread |
Sync-signal wait thread. More... | |
sem_t | mIoSem |
Startup initialization semaphore. More... | |
UtlBoolean | mbTerminate |
Should the timer thread exit? More... | |
Static Private Attributes | |
static PosixSignalReg | sPosixTimerReg |
Additional Inherited Members | |
Public Types inherited from MpMMTimer | |
enum | MMTimerType { Linear = 0, Notification = 1 } |
Posix implementation of periodic timer.
WARNING: You MUST be sure that exists only one object of this class. To support several MpMMTimer objects we need to circumvent sync sigwait() peculiarities, which will complicate the code a lot and is not necessary right now.
MpMMTimerPosix | ( | MpMMTimer::MMTimerType | type | ) |
~MpMMTimerPosix | ( | ) |
|
virtual |
Set notification for the OsNotification timer type.
Signals will be sent to this notification when the timer ticks. Pointer to this timer instance will be set in eventData
member.
[in] | notification | - object to notify when timer fires/ticks. |
OS_SUCCESS | Returned when notification is set. |
OS_INVALID_STATE | Returned when calling this function for non-Notification timer type. |
OS_FAILED | Returned when mandatory initialization failed (maybe in the constructor) and later calls will fail for this instance also. |
Reimplemented from MpMMTimer.
|
virtual |
Start periodical firing.
Start periodical firing with given period and fire type.
[in] | usecPeriodic | timer period in microseconds. |
OS_SUCCESS | Returns when timer has been created and ran. |
OS_INVALID_ARGUMENT | Returns when either value of uAlgorithm doesn't support in current realization or running OS couldn't create timer with specified usecPeriodic , but with another value of it, it could. |
OS_INVALID_STATE | Returns when timer has already been started or if the timer type is not supported. |
OS_LIMIT_REACHED | Returns when timer couldn't run due the resource limitation. |
OS_FAILED | Returns when mandatories initializations failed (maybe in constructor) and later calls will also fail for this instance. |
Implements MpMMTimer.
|
virtual |
Stop periodical firing.
Stop periodical timer.
OS_SUCCESS | Returns when timer has been stopped. |
OS_FAILED | Returns when mandatory initialization failed (maybe in constructor) and later calls for this instance will fail. |
OS_INVALID_STATE | Returns when timer has not been started. |
Implements MpMMTimer.
|
virtual |
Block this thread until the next tick occurs
OS_SUCCESS | Returns when next tick period occurs. |
OS_INVALID_STATE | Returns when calling this function for non-Linear timer type. |
OS_FAILED | Returns when mandatory initialization failed (maybe in constructor) and later calls for this instance will fail too. |
Reimplemented from MpMMTimer.
|
virtual |
Get resolution of timer in microseconds.
[out] | resolution | - set to the finest resolution timer we can generate. |
OS_SUCCESS | - the resolution was able to be retrieved. |
OS_FAILED | - the resolution wasn't able to be retrieved. |
Reimplemented from MpMMTimer.
|
virtual |
Get the range of timer periods that can be generated.
[out] | pMinUSecs | - set to the smallest period we can generate. |
[out] | pMaxUSecs | - set to the largest period we can generate. |
OS_SUCCESS | - the min and max periods were able to be retrieved. |
OS_FAILED | - the min and max periods weren't able to be retrieved. |
Reimplemented from MpMMTimer.
OsTime getAbsFireTime | ( | ) | const |
|
static |
Returns signal descriptor for thread blocking/unblocking operations.
|
static |
Signal callback.
|
protected |
|
staticprivate |
|
static |
|
protected |
Notification object used to signal a tick of the timer.
|
protected |
Is timer started.
|
protected |
Timer object.
|
protected |
Synchronization semaphore for linear operation.
|
staticprivate |
|
private |
Sync-signal wait thread.
|
private |
Startup initialization semaphore.
|
private |
Should the timer thread exit?