mmapitest/devsoundhaitest/src/T_CRepositoryData.cpp
author hgs
Mon, 23 Aug 2010 21:33:25 +0100
changeset 46 ed4308a6c628
parent 26 c36d67f77f75
permissions -rw-r--r--
2010wk32_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     1
/*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     2
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     3
* All rights reserved.
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     8
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
     9
* Initial Contributors:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    11
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    12
* Contributors:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    13
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    14
* Description: 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    15
*
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    16
*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    17
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    18
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    19
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    20
#include "t_crepositorydata.h"
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    21
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    22
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    23
//Command literals 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    24
_LIT(KCmdNewL, 							"NewL");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    25
_LIT(KCmdDestructor, 						"~");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    26
_LIT(KCmdSet,								"Set");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    27
/*@}*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    28
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    29
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    30
//INI Key names literals 
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    31
_LIT(KRepUID,							"RepUID");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    32
_LIT(KRepItemID,						"ItemID");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    33
_LIT(KRepSetValue,						"SetValue");
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    34
/*@{*/
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    35
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    36
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    37
 * Two phase constructor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    38
 *
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    39
 * @leave	system wide error
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    40
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    41
CT_CRepositoryData* CT_CRepositoryData::NewL()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    42
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    43
	CT_CRepositoryData* ret = new (ELeave) CT_CRepositoryData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    44
	CleanupStack::PushL(ret);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    45
	ret->ConstructL();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    46
	CleanupStack::Pop(ret);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    47
	return ret;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    48
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    49
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    50
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    51
 * Private constructor. First phase construction
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    52
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    53
CT_CRepositoryData::CT_CRepositoryData()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    54
	:
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    55
	iRepository(NULL)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    56
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    57
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    58
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    59
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    60
 * Second phase construction
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    61
 * @internalComponent
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    62
 * @return	N/A
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    63
 * @pre		None
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    64
 * @post	None
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    65
 * @leave	system wide error
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    66
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    67
void CT_CRepositoryData::ConstructL()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    68
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    69
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    70
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    71
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    72
 * Public destructor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    73
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    74
CT_CRepositoryData::~CT_CRepositoryData()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    75
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    76
	DestroyData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    77
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    78
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    79
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    80
 * Return a pointer to the object that the data wraps
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    81
 *
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    82
 * @return	pointer to the object that the data wraps
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    83
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    84
TAny* CT_CRepositoryData::GetObject()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    85
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    86
	return iRepository;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    87
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    88
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    89
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    90
 * Helper Destructor
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    91
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    92
void CT_CRepositoryData::DestroyData()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    93
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    94
	if(iRepository)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    95
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    96
		delete iRepository;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    97
		iRepository = NULL;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    98
		}	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
    99
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   100
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   101
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   102
 * Process a command read from the Ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   103
 * @param aCommand 		   -	The command to process
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   104
 * @param aSection		   -	The section get from the *.ini file of the project T_Wlan
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   105
 * @param aAsyncErrorIndex -	Command index dor async calls to returns errors to
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   106
 * @return TBool		   -    ETrue if the command is process
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   107
 * @leave				   -	system wide error
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   108
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   109
TBool CT_CRepositoryData::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   110
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   111
	TBool ret = ETrue;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   112
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   113
	if (aCommand == KCmdNewL)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   114
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   115
		DoCmdNewL(aSection);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   116
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   117
	else if (aCommand == KCmdDestructor)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   118
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   119
		DoCmdDestructor();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   120
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   121
	else if (aCommand == KCmdSet)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   122
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   123
		DoCmdSet(aSection);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   124
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   125
	else
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   126
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   127
		ERR_PRINTF1(_L("Unknown command."));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   128
		ret=EFalse;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   129
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   130
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   131
	return ret;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   132
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   133
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   134
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   135
 * Create an instance of CRepository
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   136
 * @param aSection - Section to read from the ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   137
 * @return void
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   138
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   139
void CT_CRepositoryData::DoCmdNewL(const TTEFSectionName& aSection)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   140
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   141
	INFO_PRINTF1(_L("*START*CT_CRepositoryData::DoCmdNewL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   142
	DestroyData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   143
	TBool dataOk = ETrue;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   144
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   145
	TInt parRepUID = 0;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   146
	if(!GetHexFromConfig(aSection, KRepUID, parRepUID))
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   147
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   148
		ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KRepUID);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   149
    	SetBlockResult(EFail);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   150
    	dataOk = EFalse;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   151
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   152
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   153
	if(dataOk)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   154
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   155
		TUid repUid;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   156
	    repUid.Null();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   157
	    repUid = TUid::Uid(parRepUID);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   158
		TRAPD(error, iRepository = CRepository::NewL(repUid));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   159
		if(error != KErrNone)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   160
			{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   161
			ERR_PRINTF2(_L("Could not create CRepository: error %d"), error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   162
			SetError(error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   163
			}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   164
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   165
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   166
	INFO_PRINTF1(_L("*END*CT_CRepositoryData::DoCmdNewL"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   167
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   168
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   169
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   170
 * Delete an instance of CRepository
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   171
 * @param
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   172
 * @return
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   173
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   174
void CT_CRepositoryData::DoCmdDestructor()
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   175
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   176
	INFO_PRINTF1(_L("*START*CT_CRepositoryData::DoCmdDestroyData"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   177
	DestroyData();
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   178
	INFO_PRINTF1(_L("*END*CT_CRepositoryData::DoCmdDestroyData"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   179
	}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   180
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   181
/**
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   182
 * Setting the central repository
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   183
 * @param aSection - Section to read from the ini file
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   184
 * @return void
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   185
 */
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   186
void CT_CRepositoryData::DoCmdSet(const TTEFSectionName& aSection)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   187
	{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   188
	INFO_PRINTF1(_L("*START* CT_CRepositoryData::DoCmdSet"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   189
	TBool dataOk = ETrue;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   190
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   191
	TInt parRepItemID;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   192
	if(!GetHexFromConfig(aSection, KRepItemID, parRepItemID))
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   193
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   194
		ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KRepItemID);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   195
    	SetBlockResult(EFail);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   196
    	dataOk = EFalse;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   197
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   198
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   199
	TInt parRepSetValue;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   200
	if(!GetIntFromConfig(aSection, KRepSetValue, parRepSetValue))
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   201
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   202
		ERR_PRINTF2(_L("Error in getting parameter %S from INI file"), &KRepSetValue);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   203
    	SetBlockResult(EFail);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   204
    	dataOk = EFalse;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   205
		}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   206
	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   207
	if(dataOk)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   208
		{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   209
		TInt error = KErrNone;
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   210
		INFO_PRINTF2(_L("ItemId = %d"),parRepItemID);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   211
		INFO_PRINTF2(_L("DataId = %d"),parRepSetValue);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   212
		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   213
		error = iRepository->Set(parRepItemID, parRepSetValue);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   214
		
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   215
		if(error != KErrNone)
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   216
			{
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   217
			ERR_PRINTF3(_L("Setting the central repository parameter %d failed with error %d"),	parRepItemID, error);
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   218
			SetError(error);			
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   219
			}
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   220
		}	
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   221
	INFO_PRINTF1(_L("*END* CT_CRepositoryData::DoCmdSet"));
c36d67f77f75 2010wk21_04
hgs
parents:
diff changeset
   222
	}