tracesrv/tracecore/btrace_handler/test/TEF/te_tracecore/inc/te_tracecore_datawrapper.h
author hgs
Fri, 08 Oct 2010 14:56:39 +0300
changeset 56 aa2539c91954
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
//
hgs
parents:
diff changeset
    15
// 
hgs
parents:
diff changeset
    16
//
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef TE_TRACECORE_DATAWRAPPER_H_
hgs
parents:
diff changeset
    19
#define TE_TRACECORE_DATAWRAPPER_H_
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <test/datawrapper.h>
hgs
parents:
diff changeset
    22
#include <test/TraceOnActivationIf.h>
hgs
parents:
diff changeset
    23
#include <TraceCoreOstDriverIf.h> //TraceCoreOstLdd
hgs
parents:
diff changeset
    24
#include <TcDriverIf.h> //TcLdd
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
const TInt KNoOfSlots = 5;
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
class CTraceCoreDataWrapper : public CDataWrapper
hgs
parents:
diff changeset
    29
    {
hgs
parents:
diff changeset
    30
public:
hgs
parents:
diff changeset
    31
    static CTraceCoreDataWrapper* NewLC();
hgs
parents:
diff changeset
    32
    static CTraceCoreDataWrapper* NewL();
hgs
parents:
diff changeset
    33
    ~CTraceCoreDataWrapper();
hgs
parents:
diff changeset
    34
    
hgs
parents:
diff changeset
    35
    TAny* GetObject();
hgs
parents:
diff changeset
    36
    TBool DoCommandL(const TTEFFunction& aCommand,
hgs
parents:
diff changeset
    37
                     const TTEFSectionName& aSection, 
hgs
parents:
diff changeset
    38
                     const TInt aAsyncErrorIndex);
hgs
parents:
diff changeset
    39
    
hgs
parents:
diff changeset
    40
    TBool GetStringFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TPtrC& aResult);
hgs
parents:
diff changeset
    41
    TBool GetBoolFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TBool& aResult);
hgs
parents:
diff changeset
    42
    TBool GetIntFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult);
hgs
parents:
diff changeset
    43
    TBool GetHexFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult);
hgs
parents:
diff changeset
    44
    
hgs
parents:
diff changeset
    45
    TBool GetPathFromConfig(const TTEFSectionName& aSection, const TDesC& aPathKey, TFileName& aPath);
hgs
parents:
diff changeset
    46
    TBool GetArgsFromConfig(const TTEFSectionName& aSection, TDes& aArgs);
hgs
parents:
diff changeset
    47
    TBool GetLongStringFromConfig(const TTEFSectionName& aSection, const TDesC& aKeyName, TDes& aResult);
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
protected:
hgs
parents:
diff changeset
    50
    CTraceCoreDataWrapper();
hgs
parents:
diff changeset
    51
    void ConstructL();
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
    // Command functions
hgs
parents:
diff changeset
    54
    void DoCmdCopyFileL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    55
    void DoCmdDeleteFileFromAllDrivesL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    56
    void DoCmdDeleteFileL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    57
    void DoCmdDeleteEmptyFolder(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    58
    void DoCmdFileExists(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    59
    void DoCmdCheckFileSize(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    60
    void DoCmdRunProcess(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    61
    void DoCmdCreateSubstDrive(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    62
    void DoCmdUnSubstDrive(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    63
    void DoCmdCheckMaxFileSizeL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    64
    void DoCmdCheckFileIsAppendedL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    65
    void DoCmdVerifyTraceDataL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    66
    void DoCmdVerifyPrimingDataL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    67
    void DoCmdVerifyDroppedTracesL(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    68
    void DoCmdVerifySlot(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    69
    void DoCmdFileChangeNotification(const TTEFSectionName& aSection, const TInt aAsyncErrorIndex);
hgs
parents:
diff changeset
    70
    void DoCmdRegisterNotifReceiver(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    71
    void DoCmdUnregisterNotifReceiver(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    72
    void DoCmdInstrumentTraceSequence(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    73
    void DoCmdSetUpTcLdd(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    74
    void DoCmdCleanUpTcLdd(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    75
    void DoCmdSetUpTcOstLdd(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    76
    void DoCmdCleanUpTcOstLdd(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    77
    void DoCmdSetUpTraceOnActivation(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    78
    void DoCmdCleanUpTraceOnActivation(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    79
    void DoCmdActivateDeactivateTrace(const TTEFSectionName& aSection);
hgs
parents:
diff changeset
    80
    void DoCmdReadTracesFromBuffer();
hgs
parents:
diff changeset
    81
    
hgs
parents:
diff changeset
    82
protected:
hgs
parents:
diff changeset
    83
    // Helper methods
hgs
parents:
diff changeset
    84
    void CopyFileL(const TDesC& aSrcFile, const TDesC& aDstFile);
hgs
parents:
diff changeset
    85
    void DeleteFileFromAllDrivesL(const TDesC& aFile);
hgs
parents:
diff changeset
    86
    void DeleteFileL(const TDesC& aFile, TInt aStrictMode = ETrue);
hgs
parents:
diff changeset
    87
    void DeleteEmptyFolder(const TDesC& aFolder);
hgs
parents:
diff changeset
    88
    TBool FileExists(const TDesC& aFile);
hgs
parents:
diff changeset
    89
    TInt CheckFileSize(const TDesC& aFile, TInt aMinSize, TInt aMaxSize);
hgs
parents:
diff changeset
    90
    void RunProcess(const TDesC& aProgramName, const TDesC& aCmdLineArgs, TInt aNoOfCalls = 1, TInt aAllowedErrorCode = KErrNone);
hgs
parents:
diff changeset
    91
    void CreateSubstDrive(const TDesC& aFolderPath, TDriveNumber aDrive);
hgs
parents:
diff changeset
    92
    void UnSubstDrive(TDriveNumber aDrive);
hgs
parents:
diff changeset
    93
    TBool DriveNumberFromString(const TDesC& aDriveString, TDriveNumber& aDriveNumber);
hgs
parents:
diff changeset
    94
    void VerifyPrimingDataL(const TDesC& aFile, TInt aGroupId, TBool aVerifyData, TInt& aNumTraces, TInt& aNumPrimingTraces);
hgs
parents:
diff changeset
    95
    void VerifyDroppedPrintfTracesL(const TDesC& aFile, const TDesC& aFindString, TInt& aLastNumberFound, TInt& aNumDroppedTraces);
hgs
parents:
diff changeset
    96
    void VerifyDroppedBinaryTracesL(const TDesC& aFile, TInt aGroupId, TInt aComponentId, TInt& aLastNumberFound, TInt& aNumDroppedTraces);
hgs
parents:
diff changeset
    97
    void StoreInSlot(TInt aEntry, TInt aSlot);
hgs
parents:
diff changeset
    98
    TInt ReadFromSlot(TInt aSlot);
hgs
parents:
diff changeset
    99
    TInt GetSlotValue(const TTEFSectionName& aSection, const TDesC& aValueKey, const TDesC& aSlotNumberKey);
hgs
parents:
diff changeset
   100
    void FileHasPrintfStringL(const TDesC& aFile, const TDesC& aFindString, TInt& aNumFound);
hgs
parents:
diff changeset
   101
    void BufferHasPrintfStringL(TDesC8& aBuffer, const TDesC& aFindString, TInt& aNumFound);
hgs
parents:
diff changeset
   102
    void InstrumentBinaryTracePoint(TInt aGroupId, TInt aComponentId, TInt aData, TInt aTraceId = 1);
hgs
parents:
diff changeset
   103
    void InstrumentBinaryTraceSequence(TInt aSequenceLength, TInt aGroupId, TInt aComponentId);
hgs
parents:
diff changeset
   104
    void InstrumentPrintfTraceSequence(TInt aSequenceLength, const TDesC& aString);
hgs
parents:
diff changeset
   105
    TInt LoadLdd(const TDesC& aLddName, TBool aSingleUse);
hgs
parents:
diff changeset
   106
    TInt FreeLdd(const TDesC& aLddName);
hgs
parents:
diff changeset
   107
    TBool LoadLdd(const TDesC& aLddName, const TTEFSectionName& aSection);
hgs
parents:
diff changeset
   108
    template <class T> TInt OpenLdd(const TDesC& aLddName, T& aLdd);
hgs
parents:
diff changeset
   109
    template <class T> TBool OpenLdd(const TDesC& aLddName, T& aLdd, const TTEFSectionName& aSection);
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    //  MActiveCallback implementation
hgs
parents:
diff changeset
   112
    void RunL(CActive* aActive, TInt aIndex);
hgs
parents:
diff changeset
   113
    void DoCancel(CActive* aActive, TInt aIndex);
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
protected:
hgs
parents:
diff changeset
   116
    // Member variables
hgs
parents:
diff changeset
   117
    RFs                             iFs;
hgs
parents:
diff changeset
   118
    RTimer                          iTimer;
hgs
parents:
diff changeset
   119
    TFixedArray<TInt, KNoOfSlots>   iSlots;
hgs
parents:
diff changeset
   120
    CActiveCallback*                iActiveFileChangeNotification;
hgs
parents:
diff changeset
   121
    CActiveCallback*                iActiveFileChangeNotificationTimeout;
hgs
parents:
diff changeset
   122
    TPtrC                           iCurrentSectionName;
hgs
parents:
diff changeset
   123
    RTraceOnActivation              iTraceOnActivationLdd;
hgs
parents:
diff changeset
   124
    RTcDriver                       iTcLdd;
hgs
parents:
diff changeset
   125
    RTraceCoreOstDriver             iTraceCoreOstLdd;
hgs
parents:
diff changeset
   126
    RBuf8                           iTraceBuffer;
hgs
parents:
diff changeset
   127
    TBool                           iTcLddLoadedAtStart;
hgs
parents:
diff changeset
   128
    TBool                           iTcOstLddLoadedAtStart;
hgs
parents:
diff changeset
   129
    TBool                           iTraceOnActivationLoadedAtStart;
hgs
parents:
diff changeset
   130
    };
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
#endif /* TE_TRACECORE_DATAWRAPPER_H_ */