diff -r bbd31066657e -r 8bb370ba6d1d testexecfw/stf/stffw/eventsystem/server/inc/eventsystemserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/stf/stffw/eventsystem/server/inc/eventsystemserver.h Fri Apr 09 10:46:28 2010 +0800 @@ -0,0 +1,110 @@ +/* +* Copyright (c) 2010 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: +* +*/ +#ifndef EVENTSYSTEMSERVER_H_ +#define EVENTSYSTEMSERVER_H_ + +#include "stfeventsystemdefs.h" +#include "waitingevent.h" +#include "stateevent.h" + +// Constant values +TInt const KShutdownDelay = 60000000; //Automatic shutdown delay: 60s + +// Class for shutting down server when inactive +class CShutdown: public CTimer + { + public: + inline CShutdown(); + inline void ConstructL(); + inline void Start(); + + private: + void RunL(); + }; + +// Main class of TestEngine server +class CEventSystemServer : public CServer2 + { + public: + // Creats a new server object + static CEventSystemServer* NewL(CActive::TPriority aActiveObjectPriority); + static CEventSystemServer* NewLC(CActive::TPriority aActiveObjectPriority); + + // Creates a new session with the server; the function implements + // pure virtual function defined in class CServer2 + CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const; + + // Adds session + void AddSession(void); + + // Removes session + void RemoveSession(void); + + public : + // Constructor + CEventSystemServer(CActive::TPriority aActiveObjectPriority); + + // Second phase constructor + void ConstructL(); + + // Returns an object container, and guaranteed to produce object + // containers with unique ids within the server. + // Called by a new session to create a container + CObjectCon* NewContainerL(); + + // Remove session object from container + void RemoveContainer(CObjectCon *aObj); + + // Destructor + ~CEventSystemServer(); + + // Search for state event and give its index + TInt SearchForState(const TDesC& aEventName); + + // Search for waiting event, starting from aIndex + TBool SearchForWaiting(const TDesC& aEventName, const TInt aOwnerId, TInt& aIndex); + + // Search for waiting event, starting from aIndex + TBool SearchForWaiting(const TDesC& aEventName, TInt& aIndex); + + // List of waiting events + RPointerArray iWaitingEvents; + + // State events container + RPointerArray iStateEvents; + + private: + // Panic class with given error code + void PanicClass(const TInt aErrorCode); + + // Check condition and start shudown timer. + void CheckAndStartShutdownTimer(void); + + // The server has an object container index that + // creates an object container for each session. + CObjectConIx* iContainerIndex; + + // Session counter + TInt iSessionCounter; + + // Shutdown object + CShutdown iShutdown; + }; + + +#endif /* EVENTSYSTEMSERVER_H_ */ +// EOF