/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: This file contains the header file of the event
* interface.
*
*/
#ifndef TESTEVENTINTERFACE_H
#define TESTEVENTINTERFACE_H
// INCLUDES
#include <e32std.h>
// CONSTANTS
// None
// MACROS
// None
// DATA TYPES
// None
// FUNCTION PROTOTYPES
// None
// FORWARD DECLARATIONS
// None
// CLASS DECLARATION
// DESCRIPTION
// Interface class for the event system.
class TEventIf
{
public: // Enumerations
/**
* Event request types.
*/
enum TReqType
{
// The following can be used by the test module
EReqEvent = 1,
EWaitEvent,
ERelEvent,
ESetEvent,
EUnsetEvent,
// The rest are special
// Not used by the test module
EEnable,
ESetWaitPending,
ECmdError,
ECancelWait,
};
/**
* Event types.
*/
enum TEventType
{
EIndication,
EState,
};
private: // Enumerations
public: // Constructors and destructor
/**
* C++ constructor with params.
*/
TEventIf( TReqType aType = EEnable,
const TName& aName = KNullDesC(),
TEventType aEventType = EIndication )
{ iType = aType; iName = aName; iEventType = aEventType; }
public: // New functions
/**
* Get request type.
*/
inline TReqType Type() const { return iType; }
/**
* Get event name.
*/
inline const TName& Name() const { return iName; }
/**
* Get event type.
*/
inline TEventType EventType() const { return iEventType; }
/**
* Set request type.
*/
inline void SetType( TReqType aType ){ iType = aType; }
/**
* Set event name.
*/
inline void SetName( const TName& aName ){ iName = aName; }
/**
* Set event to state event.
*/
inline void SetEventType( TEventType aEventType )
{ iEventType = aEventType; }
/**
* Set request type and event name.
*/
inline void Set( TReqType aType, const TName& aName )
{ iType = aType; iName = aName; }
/**
* Set request type, event name and event type.
*/
inline void Set( TReqType aType,
const TName& aName,
TEventType aEventType )
{ iType = aType; iName = aName; iEventType = aEventType; }
/**
* Copy data from existing TEventIf (or derived class).
*/
inline void Copy( const TEventIf& aEvent)
{ iType = aEvent.iType;
iName = aEvent.iName;
iEventType = aEvent.iEventType; }
public: // Functions from base classes
protected: // New functions
protected: // Functions from base classes
private:
public: //Data
protected: // Data
/**
* Request type.
*/
TReqType iType;
/**
* Event name (must be unique).
*/
TName iName;
/**
* Event type.
*/
TEventType iEventType;
private: // Data
public: // Friend classes
protected: // Friend classes
private: // Friend classes
};
// Packaged TEventIf
typedef TPckg<TEventIf> TEventIfPckg;
#endif // TESTEVENTINTERFACE_H
// End of File