1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Defines target-executable classes used across the Core Dump client/server interface
25 #ifndef EXECUTABLEDATA_H
26 #define EXECUTABLEDATA_H
28 #include <streamelement.h>
35 Class that represents a target executable file from which a process can launched.
36 It is based on CStreamElementBase so it can be streamed between client and server.
37 @see CServerCrashDataSource::GetExecutableListL
39 class CExecutableInfo : public CStreamElementBase
44 IMPORT_C static CExecutableInfo* NewL( const TDesC & aName,
45 const TBool aActivelyDebugged,
46 const TBool aPassivelyDebugged );
48 IMPORT_C static CExecutableInfo* NewL( const TDesC8 & aStreamData );
50 IMPORT_C ~CExecutableInfo();
53 // Methods specific to CExecutableInfo
55 IMPORT_C void NameL( const TDesC & aName );
56 IMPORT_C const TDesC & Name() const;
58 IMPORT_C TBool ActivelyDebugged( ) const;
59 IMPORT_C void ActivelyDebugged( TBool aActivelyDebugged );
61 IMPORT_C TBool PassivelyDebugged( ) const;
62 IMPORT_C void PassivelyDebugged( TBool aPassivelyDebugged );
64 IMPORT_C TBool Observed( ) const;
65 IMPORT_C void Observed( TBool aFlag );
69 // Methods required by streaming interface
71 IMPORT_C TInt static MaxSize();
73 IMPORT_C TInt Size() const;
75 // Initializes ’this’ from stream
76 IMPORT_C void InternalizeL( RReadStream & aStream );
78 // Writes ’this’ to the stream
79 IMPORT_C void ExternalizeL( RWriteStream & aStream, CBufFlat* buf );
84 CExecutableInfo( const TBool aActivelyDebugged,
85 const TBool aPassivelyDebugged );
89 void ConstructL( const TDesC & aName );
93 /** Symbian kernel executable name */
96 /** Actively debugged by client of Debug Security Server */
97 TBool iActivelyDebugged;
99 /** Passively debugged by client of Debug Security Server */
100 TBool iPassivelyDebugged;
102 /** Observed by core dump server */
105 /** Externalized size */
108 // These are not internalised/externalised since they are spare
119 List of CExecutableInfo object pointers
123 typedef RPointerArray<CExecutableInfo> RExecutablePointerList;