testexecfw/stf/stffw/eventsystem/server/inc/eventsystemserver.h
changeset 2 8bb370ba6d1d
--- /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<CWaitingEvent> iWaitingEvents;
+
+        // State events container
+        RPointerArray<CStateEvent> 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