diff -r 3ff3fecb12fe -r 6a82cd05fb1e memana/analyzetoolclient/storageserver/server/inc/atstorageserver.h --- a/memana/analyzetoolclient/storageserver/server/inc/atstorageserver.h Thu Feb 11 15:52:57 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,218 +0,0 @@ -/* -* 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: Declaration of the server side main class CATStorageServer -* -*/ - - -#ifndef ATSTORAGESERVER_H -#define ATSTORAGESERVER_H - - -// INCLUDES -#include -#include -#include "atdllinfo.h" - -// CONSTANTS -// Constants for the server's version -const TUint KVersionNumberMaj = 0; -const TUint KVersionNumberMin = 1; -const TUint KVersionNumberBld = 1; - -// DATA TYPES - -// FORWARD DECLARATIONS -class TATProcessInfo; -class CATDynProcessInfo; -class CATStorageServerSession; - -// CLASS DECLARATION - -/** -* The main class of the Storage Server. -* When a client connects to the server, a new session object -* is created by an object of this class. If the server does not exist when -* connecting, a new process and an object of this class are created first. -*/ -class CATStorageServer : public CPolicyServer - { - - public: // Enumerations - - // opcodes used in message passing between client and server - enum TStorageServerReq - { - EProcessStarted, - EDllLoaded, - EDllUnloaded, - EMemoryAllocated, - EMemoryFreed, - EProcessEnded, - EMemoryCheck, - EGetProcesses, - EGetDlls, - ESetLoggingMode, - EGetLoggingMode, - ESubtestStart, - ESubtestStop, - ESubtestStart2, - ESubtestStop2, - EGetCurrentAllocs, - EGetMaxAllocs, - ECancelLogging, - EGetUdeb, - EGetLoggingFile, - EProcessUdeb, - EIsMemoryAdded, - EOutOfBounds - }; - - - public: // Constructors and destructor - - /** - * Two-phased constructor that can leave. - * @return A new instance of this class - */ - static CATStorageServer* NewL(); - - /** - * Two-phased constructor that can leave and leaves a pointer - * on the cleanup stack. - * @return A new instance of this class - */ - static CATStorageServer* NewLC(); - - /** - * Destructor - */ - virtual ~CATStorageServer(); - - public: // New functions - - - /** - * Creates a new server object and starts the server. - */ - static void RunServerL(); - - /** - * Increments the count of active sessions for this server. - */ - void IncSessionCount(); - - /** - * Decrements the count of active sessions for this server. - */ - void DecSessionCount(); - - /** - * Adds a new process into the server's arrays. - * @param aProcessName The name of the process to be added. - * @param aProcessId The ID of the process to be added. - * @param aSessionObject A pointer to the current process's associated session - * object. - * @param aStartTime The starting time of the process to be added. It represents - * time as a number of microseconds since midnight, January 1st, 0 AD nominal - * Gregorian. This is the representation used by, e.g., the TTime class. - * @return KErrNone, if the operation is successful; KErrAlreadyExists, if - * an attempt is being made to insert a duplicate process; otherwise one of - * the other system wide error codes. - */ - TInt AddProcessL( const TDesC8& aProcessName, - TUint aProcessId, - CATStorageServerSession* aSessionObject, - const TInt64& aStartTime ); - - /** - * Removes a process from the server's arrays. - * @param aProcessId The ID of the process to be removed. - * @return KErrNone, if successful; KErrNotFound, if a process with - * the specified process ID could not be found in the array. - */ - TInt RemoveProcessL( TUint aProcessId ); - - /** - * Adds a DLL for a given process to the dynamic process info array of this class. - * @param aProcessId The ID of the process that has loaded the DLL to be added. - * @param aDllName The name of the DLL to be added. - * @return KErrNone, if successful; KErrNotFound, if a process with the given - * process ID could not be found; KErrAlreadyExists, if a DLL with the given - * name was already stored; otherwise one of the other system wide error codes. - */ - TInt AddDllL( TUint aProcessId, const TATDllInfo aDllInfo ); - - /** - * Removes a DLL associated with the given process from the dynamic process - * info array of this class. - * @param aProcessId The ID of the process that has loaded the DLL to be removed. - * @param aDllName The name of the DLL to be removed. - * @return KErrNone, if successful; KErrNotFound, if a process with - * the specified process ID could not be found, or if a DLL with the specified - * name could not be found. - */ - TInt RemoveDllL( TUint aProcessId, const TDesC8& aDllName ); - - /** - * Gives a reference to the process info array of this class. - * @return A reference to iProcesses array - */ - const RArray& ProcessInfoArray(); - - /** - * Gives a reference to the dynamic process info array of this class. - * @return A reference to iProcessesDyn array - */ - const RPointerArray& DynProcessInfoArray(); - - public: // Functions from base classes - - /** - * From CPolicyServer. - * Creates a new server-side session object. - * @param aVersion The version of this server - * @param aMessage A message from the client - * @return A pointer to a new session object. - */ - CSession2* NewSessionL( const TVersion& aVersion, const RMessage2& aMessage ) const; - - private: - - /** - * C++ default constructor. - * @param aPriority A priority for this active object - */ - CATStorageServer( TInt aPriority ); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - private: // Data - - /** The number of active sessions */ - TInt iSessionCount; - - /** An array for storing TATProcessInfo objects */ - RArray iProcesses; - - /** An array for storing CATDynProcessInfo pointers */ - RPointerArray iProcessesDyn; - }; - -#endif // ATSTORAGESERVER_H - -// End of File \ No newline at end of file