satengine/satserver/Engine/inc/TSatEventsObserver.h
author hgs
Fri, 15 Oct 2010 13:21:28 +0300
changeset 53 25b8d29b7c59
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Capsulates observer and its events
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef TSATEVENTSOBSERVER_H
hgs
parents:
diff changeset
    21
#define TSATEVENTSOBSERVER_H
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
//  INCLUDES
hgs
parents:
diff changeset
    24
#include <e32std.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    27
class MSatEventObserver;
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
// CLASS DECLARATION
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
*  Capsulates observer and its events.
hgs
parents:
diff changeset
    33
*
hgs
parents:
diff changeset
    34
*  @lib SatEngine.dll
hgs
parents:
diff changeset
    35
*  @since Series 60 3.0
hgs
parents:
diff changeset
    36
*/
hgs
parents:
diff changeset
    37
class TSatEventsObserver
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
        /**
hgs
parents:
diff changeset
    42
        * C++ default constructor.
hgs
parents:
diff changeset
    43
        * @param aObserver Observer of events. Panic will occur if aObserver is
hgs
parents:
diff changeset
    44
        * NULL.
hgs
parents:
diff changeset
    45
        */
hgs
parents:
diff changeset
    46
        TSatEventsObserver( MSatEventObserver* aObserver );
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
        /**
hgs
parents:
diff changeset
    49
        * Destructor.
hgs
parents:
diff changeset
    50
        */
hgs
parents:
diff changeset
    51
        virtual ~TSatEventsObserver();
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
    public: // New functions
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
        /**
hgs
parents:
diff changeset
    56
        * Adds event to be notified for the iObserver. Same event will
hgs
parents:
diff changeset
    57
        * added more than once.
hgs
parents:
diff changeset
    58
        * @param aEvent Source of notification for observer.
hgs
parents:
diff changeset
    59
        */
hgs
parents:
diff changeset
    60
        void AddEventL( TInt aEvent );
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
        /**
hgs
parents:
diff changeset
    63
        * Removes the event from the observable events. If aEvent is not
hgs
parents:
diff changeset
    64
        * observable event, nothing is done.
hgs
parents:
diff changeset
    65
        * @param aEvent Source of notification for observer.
hgs
parents:
diff changeset
    66
        */
hgs
parents:
diff changeset
    67
        void RemoveEvent( TInt aEvent );
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
        /**
hgs
parents:
diff changeset
    70
        * Checks if aEvent is already in the list of events.
hgs
parents:
diff changeset
    71
        * @param aEvent Event to be checked.
hgs
parents:
diff changeset
    72
        * @return ETrue if aEvent is in the list. Othervise EFalse.
hgs
parents:
diff changeset
    73
        */
hgs
parents:
diff changeset
    74
        TBool ObservingEvent( TInt aEvent ) const;
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
        /**
hgs
parents:
diff changeset
    77
        * Gives the observer of the iEvents.
hgs
parents:
diff changeset
    78
        * @return Observer of the iEvents
hgs
parents:
diff changeset
    79
        */
hgs
parents:
diff changeset
    80
        MSatEventObserver* Observer();
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
        /**
hgs
parents:
diff changeset
    83
        * Gives the number of events that has been added.
hgs
parents:
diff changeset
    84
        * @return Number of events.
hgs
parents:
diff changeset
    85
        */
hgs
parents:
diff changeset
    86
        TInt EventCount() const;
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
        /**
hgs
parents:
diff changeset
    89
        * Marks this observer for delete
hgs
parents:
diff changeset
    90
        */
hgs
parents:
diff changeset
    91
        void MarkForDelete();
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
        /**
hgs
parents:
diff changeset
    94
        * Indicates is this observer marked for delete
hgs
parents:
diff changeset
    95
        * @return True if marked for delete.
hgs
parents:
diff changeset
    96
        */
hgs
parents:
diff changeset
    97
        TBool IsMarkedForDelete() const;
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    private:
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
        // Prohibit copy constructor if not deriving from CBase.
hgs
parents:
diff changeset
   102
        TSatEventsObserver( const TSatEventsObserver& );
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
        // Prohibit assigment operator if not deriving from CBase.
hgs
parents:
diff changeset
   105
        TSatEventsObserver& operator=( const TSatEventsObserver& );
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
    private:    // Data
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
        // Events that iObserver is observing.
hgs
parents:
diff changeset
   110
        RArray<TInt> iEvents;
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
        // Observer of events.
hgs
parents:
diff changeset
   113
        MSatEventObserver* iObserver;
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
        // Indicates is this observer marked to be deleted.
hgs
parents:
diff changeset
   116
        // If observer is requested to delete while looping
hgs
parents:
diff changeset
   117
        // in Notify events, observer cannot be deleted, but when Notify
hgs
parents:
diff changeset
   118
        // loop is over, all observers marked as delete are deleted
hgs
parents:
diff changeset
   119
        TBool iMarkedForDelete;
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    };
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
#endif      // TSATEVENTSOBSERVER_H
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
// End of File