tracesrv/tracecore/btrace_handler/test/d_tracecore/src/TraceCoreTestWriter.cpp
changeset 56 aa2539c91954
equal deleted inserted replaced
54:a151135b0cf9 56:aa2539c91954
       
     1 // Copyright (c) 2007-2010 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 "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 //
       
    17 
       
    18 #include "TraceCore.h"
       
    19 #include "TestDataWriter.h"
       
    20 #include "TraceCoreTestWriter.h"
       
    21 
       
    22 DTraceCoreTestWriter* DTraceCoreTestWriter::iInstance = NULL;    
       
    23 
       
    24 DTraceCoreTestWriter* DTraceCoreTestWriter::GetInstance()
       
    25     { 
       
    26     if ( iInstance == NULL )
       
    27         {    
       
    28         DTraceCoreTestWriter* instance = new DTraceCoreTestWriter();
       
    29 
       
    30         if ( instance != NULL )
       
    31             {
       
    32             iInstance = instance;            
       
    33             TInt ret = instance->Init();
       
    34             if ( ret != KErrNone )
       
    35                 {
       
    36                 TDW_PRINTF("TraceCoreTestWriter::GetInstance() Init failed ret = %d !!)", ret);
       
    37                 delete instance;
       
    38                 iInstance = NULL;
       
    39                 }
       
    40             }
       
    41         else
       
    42             {
       
    43             TDW_PRINTF("DTraceCoreTestWriter New returned null");
       
    44             }
       
    45         }
       
    46 
       
    47     TDW_PRINTF("TraceCoreTestWriter::GetInstance() iInstance = 0x%x)", iInstance);
       
    48     
       
    49     return iInstance;
       
    50     }
       
    51 
       
    52 void DTraceCoreTestWriter::SetNotifier(MTestWriterNotifier* aNotifier)
       
    53     {
       
    54     if(iDataWriter)
       
    55         {
       
    56         iDataWriter->iNotifier = aNotifier;  
       
    57         }
       
    58     }
       
    59 
       
    60 DTraceCoreTestWriter::DTraceCoreTestWriter()
       
    61 : iDataWriter(NULL)
       
    62     {
       
    63     }
       
    64 
       
    65 DTraceCoreTestWriter::~DTraceCoreTestWriter()
       
    66 	{
       
    67 	  delete iDataWriter;	  
       
    68 	  iInstance = NULL;
       
    69 	}
       
    70 
       
    71 
       
    72 TInt DTraceCoreTestWriter::Init()
       
    73     {
       
    74     TInt ret = KErrNoMemory;
       
    75     if(!iDataWriter)
       
    76         {
       
    77         iDataWriter = new DTestDataWriter();
       
    78         iDataWriter->Init();
       
    79         
       
    80         // now make sure that we are the writer in use 
       
    81         DTraceCore* traceCore = DTraceCore::GetInstance();
       
    82         if(traceCore)
       
    83             {     
       
    84             traceCore->SwitchToWriter(EWriterTypeTest); 
       
    85             ret = KErrNone;
       
    86             }
       
    87         }
       
    88     return ret;
       
    89     }