dbgsrv/coredumpserver/interface/common/executabledata.h
changeset 0 c6b0df440bee
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dbgsrv/coredumpserver/interface/common/executabledata.h	Tue Mar 02 10:33:16 2010 +0530
@@ -0,0 +1,125 @@
+// Copyright (c) 2007-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:
+// Defines target-executable classes used across the Core Dump client/server interface 
+//
+
+
+
+/**
+ @file
+ @publishedPartner 
+ @released
+*/
+
+#ifndef EXECUTABLEDATA_H
+#define EXECUTABLEDATA_H
+
+#include <streamelement.h>
+
+
+/**
+@publishedPartner 
+@released
+
+Class that represents a target executable file from which a process can launched. 
+It is based on CStreamElementBase so it can be streamed between client and server.
+@see CServerCrashDataSource::GetExecutableListL
+*/
+class CExecutableInfo : public CStreamElementBase
+{
+
+public:
+
+	IMPORT_C static CExecutableInfo* NewL( const TDesC		& aName,
+										   const TBool  	  aActivelyDebugged,
+										   const TBool  	  aPassivelyDebugged );
+
+	IMPORT_C static CExecutableInfo* NewL( const TDesC8 & aStreamData );
+
+	IMPORT_C ~CExecutableInfo();
+
+public:
+	// Methods specific to CExecutableInfo
+
+	IMPORT_C void NameL( const TDesC & aName );
+	IMPORT_C const TDesC & Name() const;
+
+	IMPORT_C TBool ActivelyDebugged( ) const;
+	IMPORT_C void  ActivelyDebugged( TBool aActivelyDebugged );
+
+	IMPORT_C TBool PassivelyDebugged( ) const;
+	IMPORT_C void PassivelyDebugged( TBool aPassivelyDebugged );
+
+	IMPORT_C TBool Observed( ) const;
+	IMPORT_C void  Observed( TBool aFlag );
+
+
+public:
+	// Methods required by streaming interface 
+
+	IMPORT_C TInt static MaxSize();
+
+	IMPORT_C TInt Size() const;
+
+	// Initializes ’this’ from stream
+	IMPORT_C void InternalizeL( RReadStream & aStream );
+
+	// Writes ’this’ to the stream
+	IMPORT_C void ExternalizeL( RWriteStream & aStream, CBufFlat* buf );
+
+
+private:
+
+	CExecutableInfo( const TBool aActivelyDebugged,
+					 const TBool aPassivelyDebugged );
+
+	CExecutableInfo();
+
+	void ConstructL( const TDesC & aName );
+
+private:
+
+	/** Symbian kernel executable name */
+	HBufC  *			iName;
+
+    /** Actively debugged by client of Debug Security Server */
+	TBool				iActivelyDebugged;
+
+    /** Passively debugged by client of Debug Security Server */
+	TBool				iPassivelyDebugged;
+
+    /** Observed by core dump server */
+	TBool				iObserved;
+
+	/** Externalized size */
+	TUint				iSize;
+
+	// These are not internalised/externalised since they are spare
+	TUint32				iSpare1;
+	TUint32				iSpare2;
+	TUint32				iSpare3;
+	};
+
+
+/**
+@publishedPartner 
+@released
+
+List of CExecutableInfo object pointers
+@see CExecutableInfo
+@see RPointerArray
+*/
+typedef RPointerArray<CExecutableInfo>	RExecutablePointerList;
+
+#endif