|
||
class CEnvironmentChangeNotifier : public CActive;
Environment change notifier. This is an active object and can be used to handle environment change events.
CBase
-
Base class for all classes to be instantiated on the heap.
CActive
-
The core class of the active object abstraction.
CEnvironmentChangeNotifier
- Environment change notifier. This is an active object and can be used to handle ...
Defined in CEnvironmentChangeNotifier
:
Change()const
Returns the last set of change events.DoCancel()
Implements cancellation of an outstanding request.NewL(TInt,const TCallBack &)
Constructs a new environment change notifier object with the specified active ob...RunL()
Handles an active object's request completion event.Set(const TCallBack &)
Sets the callback function.Start()
Issues a request for change events.~CEnvironmentChangeNotifier()
Destructor. Frees all resources owned by the object, prior to its destruction.Inherited from CActive
:
CActive(TInt)
Constructs the active object with the specified priority.Cancel()
Cancels the wait for completion of an outstanding request.Deque()
Removes the active object from the active scheduler's list of active objects.EPriorityHigh
A priority higher than EPriorityUserInput.EPriorityIdle
A low priority, useful for active objects representing background processing.EPriorityLow
A priority higher than EPriorityIdle but lower than EPriorityStandard.EPriorityStandard
Most active objects will have this priority.EPriorityUserInput
A priority higher than EPriorityStandard; useful for active objects handling use...Extension_(TUint,TAny *&,TAny *)
Extension function IsActive()const
Determines whether the active object has a request outstanding.IsAdded()const
Determines whether the active object has been added to the active scheduler's li...Priority()const
Gets the priority of the active object.RunError(TInt)
Handles a leave occurring in the request completion event handler CActive::RunL(...SetActive()
Indicates that the active object has issued a request and that it is now outstan...SetPriority(TInt)
Sets the priority of the active object.TPriority
Defines standard priorities for active objects. iStatus
The request status associated with an asynchronous request.Inherited from CBase
:
Delete(CBase *)
Deletes the specified object.operator new(TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TAny *)
Initialises the object to binary zeroes.operator new(TUint,TLeave)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TLeave,TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TUint)
Allocates the object from the heap and then initialises its contents to binary z...IMPORT_C static CEnvironmentChangeNotifier* NewL(TInt aPriority, const TCallBack &aCallBack);
Constructs a new environment change notifier object with the specified active object priority and callback function.
The function requires a priority value for this active object and a reference to a TCallBack
object encapsulating a pointer to the call back function which is to run when change events occur.
As part of its implementation, the function:
creates a Kernel side change notifier and opens a handle (an RChangeNotifier
) to it.
adds this active object to the current active scheduler.
Note that construction of the environment change notifier does not issue any requests for change events.
|
|
CEnvironmentChangeNotifier::Start()
Issues a request for change events.CActive::TPriority
Defines standard priorities for active objects. IMPORT_C ~CEnvironmentChangeNotifier();
Destructor. Frees all resources owned by the object, prior to its destruction.
In particular, it cancels any outstanding request to the Kernel side change notifier before closing the handle to it.
IMPORT_C void Start();
Issues a request for change events.
The request completes when change events occur, as signalled by the Kernel side change notifier service. The request may also
complete if it is cancelled by calling the CActive::Cancel()
member function of this active object.
When change events occur, the callback function is called.
Note that after the first call to this function, the callback function is called immediately; this is because of the way the underlying change notifier is implemented. The changes reported are all those defined by the TChanges enum.
CActive::Cancel()
Cancels the wait for completion of an outstanding request.TChanges
...IMPORT_C TInt Set(const TCallBack &aCallBack);
Sets the callback function.
A callback is normally set when this active object is constructed through the CEnvironmentChangeNotifier::NewL(TInt,const TCallBack &)
function. This function replaces any existing callback object with the specified callback object.
|
|
inline TInt Change() const;
Returns the last set of change events.
If the last outstanding request completed normally, the function returns a bit pattern where each bit value corresponds to one of the enumerators defined by TChanges. A set bit indicates that the corresponding change event occurred.
For example, if the bit value EChangesMidnightCrossover
is set, then the system time has passed midnight.
|
TChanges
...private: virtual void RunL();
Handles an active object's request completion event.
A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request.
The function is called by the active scheduler when a request completion event occurs, i.e. after the active scheduler's WaitForAnyRequest() function completes.
Before calling this active object's CEnvironmentChangeNotifier::RunL()
function, the active scheduler has:
1. decided that this is the highest priority active object with a completed request
2. marked this active object's request as complete (i.e. the request is no longer outstanding)
CEnvironmentChangeNotifier::RunL()
runs under a trap harness in the active scheduler. If it leaves, then the active scheduler calls CActive::RunError(TInt)
to handle the leave.
Note that once the active scheduler's CEnvironmentChangeNotifier::Start()
function has been called, all user code is run under one of the program's active object's CEnvironmentChangeNotifier::RunL()
or CActive::RunError(TInt)
functions.
CActiveScheduler::Start()
Starts a new wait loop under the control of the current active scheduler.CActiveScheduler::Error(TInt)const
Handles the result of a leave occurring in an active object’s RunL() function.CActiveScheduler::WaitForAnyRequest()
Wait for an asynchronous request to complete.private: virtual void DoCancel();
Implements cancellation of an outstanding request.
This function is called as part of the active object's CActive::Cancel()
.
It must call the appropriate cancel function offered by the active object's asynchronous service provider. The asynchronous service provider's cancel is expected to act immediately.
CEnvironmentChangeNotifier::DoCancel()
must not wait for event completion; this is handled by CActive::Cancel()
.
CActive::Cancel()
Cancels the wait for completion of an outstanding request.