common/tools/ats/smoketest/lbs/lbstestutils/src/ctlbsconfigreader.cpp
author victorp@symbian.org
Wed, 03 Feb 2010 16:06:24 +0000
changeset 872 17498133d9ad
parent 748 e13acd883fbe
permissions -rw-r--r--
adding EPL headers to smoke test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
748
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
872
17498133d9ad adding EPL headers to smoke test
victorp@symbian.org
parents: 748
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
748
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
872
17498133d9ad adding EPL headers to smoke test
victorp@symbian.org
parents: 748
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
748
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
// Contributors:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
// Description:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
// @file ctlbsconfigreader.cpp
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
// This is the Cpp file which contains the ini file configuration reader classes
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
// 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
// User includes
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
#include "ctlbsconfigreader.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
// Epoc includes
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
#include <f32file.h>
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
// Lbs includes
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
#include <lbsclasstypes.h>
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
#include <lbssatellite.h>
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
// Literals Used
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
_LIT8(KNotANumber, "nan");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
CConfigReaderBase::CConfigReaderBase(const TDesC& aConfigFileName, const TDesC& aConfigSection) : iConfigFileName(aConfigFileName), iConfigSection(aConfigSection)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
	{	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
CConfigReaderBase::~CConfigReaderBase()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
void CConfigReaderBase::AppendFieldChar(TUint aChar)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
	if (iSentence.Length() >= iSentence.MaxLength())
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
		return;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
	iSentence.Append(aChar);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
	// If aChar is not a field delimiter then just add it to buffer and return
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
	if (aChar != ',' && aChar != '*')
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
		iFieldLength++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
		return;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
	// Got a field delimiter increase the number of fields
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
	// aChar == ',' || aChar == '*'
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
	TPtrC8 thisField = iSentence.Mid(iFieldStart, iFieldLength);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
	iFields[iNumFields].Set(thisField);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
	iNumFields++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
	// Next field starts here
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
	iFieldStart  = iSentence.Length();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
	iFieldLength = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
void CConfigReaderBase::ProcessStringL(const TDesC8& aData)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
	TInt length = aData.Length();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    76
	for (TInt index = 0; index < length; index++)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    77
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
		TUint ch = aData[index];
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    79
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    80
		switch(iReadState)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
			// Keep reading until a section is found.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
			case EStartSection:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
				if (ch == '[')
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
					iReadSection.SetLength(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
					iReadState = EProcessSection;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
				break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
			// Found a section, keep reading until end of section found.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
			case EProcessSection:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    96
				// End of section, check if it's ours.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    97
				if (ch == ']')
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
					// Need to convert from TBuf8 to TBuf for the comparision.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   100
					TBuf<KMaxSentence> cmpSection;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   101
					cmpSection.Copy(iReadSection);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
					// Not our section.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   104
					if (iConfigSection.Compare(cmpSection) != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   105
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
						iReadState = EStartSection;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   107
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   108
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
					// Is our section.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
					else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
						{					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
						iReadState = EStartSentence;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
				else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   116
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   117
					iReadSection.Append(ch);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   118
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
				break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   120
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   121
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
			case EStartSentence:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   124
				//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   125
				if (ch == '$')
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
					iReadState = EProcessSentence;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
					iSentence.SetLength(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
					iNumFields   = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   130
					iFieldStart  = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   131
					iFieldLength = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   132
					for (TInt i = 0; i < KMaxFields; i++)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   133
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
						iFields[i].Set(KNullDesC8);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   135
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   136
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
				// If we find a section we know to stop reading sentences for our section
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   139
				// and we let the other section be handled, but it will not match ours.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   140
				else if (ch == '[')
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
					iReadSection.SetLength(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
					iReadState = EProcessSection;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   144
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   145
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   146
				break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
			case EProcessSentence:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   151
				AppendFieldChar(ch); // calling this don't you end up with a * in the field, does it matter
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   153
				if (ch == '*')
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   154
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   155
					iReadState = EStartSentence;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   156
					HandleSentenceL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   157
					}			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   158
				break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   164
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   165
void CConfigReaderBase::ExtractValueL(const TPtrC8& aField, TInt& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
		TLex8 lex(aField);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
		TInt err = lex.Val(aValue);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
		User::LeaveIfError(err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   173
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   174
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
void CConfigReaderBase::ExtractValueL(const TPtrC8& aField, TReal32& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   177
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   178
	TRealX nan;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
	nan.SetNaN();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
	aValue = nan;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   185
		if (aField.CompareF(KNotANumber))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   186
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   187
			TLex8 lex(aField);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
			TInt err = lex.Val(aValue);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
			User::LeaveIfError(err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   190
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   191
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   195
void CConfigReaderBase::ExtractValueL(const TPtrC8& aField, TReal64& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   196
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   197
	TRealX nan;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   198
	nan.SetNaN();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   199
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   200
	aValue = nan;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   201
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   202
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   203
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   204
		if (aField.CompareF(KNotANumber))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   205
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   206
			TLex8 lex(aField);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   207
			TInt err = lex.Val(aValue);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   208
			User::LeaveIfError(err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   209
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   210
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   211
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   212
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   213
/*
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   214
void CConfigReaderBase::ExtractDegreesL(const TPtrC8& aField, TReal64& aDegrees)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   215
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   216
	TRealX nan;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   217
	nan.SetNaN();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   218
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   219
	aDegrees = nan;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   220
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   221
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   222
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   223
		TLex8 lex(aField);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   224
		TInt err = lex.Val(aDegrees);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   225
		User::LeaveIfError(err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   226
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   227
		ConvertDecimalMinutesToDecimalDegrees(aDegrees);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   228
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   229
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   230
*/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   231
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   232
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   233
void CConfigReaderBase::ProcessL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   234
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   235
	if (iConfigFileName.Length() == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   236
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   237
		User::LeaveIfError(KErrArgument);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   238
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   239
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   240
	RFs fs;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   241
	User::LeaveIfError(fs.Connect());
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   242
	CleanupClosePushL(fs);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   243
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   244
	RFile iniFile;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   245
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   246
	User::LeaveIfError(iniFile.Open(fs, iConfigFileName, EFileRead|EFileShareReadersOnly));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   247
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   248
	CleanupClosePushL(iniFile);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   249
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   250
	TBuf8<KMaxIniFileBuffer> buf;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   251
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   252
	// Loop until EOF.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   253
	User::LeaveIfError(iniFile.Read(buf));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   254
	while (buf.Length() > 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   255
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   256
		// Process data read from file.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   257
		ProcessStringL(buf);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   258
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   259
		// Refresh buffer from file.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   260
		User::LeaveIfError(iniFile.Read(buf));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   261
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   262
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   263
	CleanupStack::PopAndDestroy(2, &fs);	// iniFile, fs.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   264
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   265
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   266
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   267
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   268
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   269
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   270
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   271
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   272
/*********************** Update Info Reader ************************/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   273
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   274
CUpdateConfigReader* CUpdateConfigReader::NewL(const TDesC &aConfigFileName, const TDesC& aConfigSection, RPointerArray<TLbsModuleUpdateItem>& aUpdateArr)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   275
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   276
	return new (ELeave) CUpdateConfigReader(aConfigFileName, aConfigSection, aUpdateArr);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   277
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   278
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   279
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   280
CUpdateConfigReader::CUpdateConfigReader(const TDesC &aConfigFileName, const TDesC& aConfigSection, RPointerArray<TLbsModuleUpdateItem>& aUpdateArr) : CConfigReaderBase(aConfigFileName, aConfigSection), iUpdateArr(aUpdateArr)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   281
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   282
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   283
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   284
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   285
void CUpdateConfigReader::HandleSentenceL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   286
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   287
	// Not a update sentence, ignore all other valid sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   288
	if (	(iNumFields == EUpdateType) || (iFields[EUpdateType].Compare(_L8("update")) != 0) )
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   289
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   290
		return;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   291
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   292
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   293
	// Determine the number of times to repeat the update.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   294
	TInt repeat = 1;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   295
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   296
	if (iFields[EUpdateRepeat].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   297
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   298
		ExtractValueL(iFields[1], repeat);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   299
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   300
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   301
	// Determine the number of measurements for each update.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   302
	TInt numOfMeasurements = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   303
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   304
	if (iFields[ENumOfMeasurements].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   305
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   306
		ExtractValueL(iFields[ENumOfMeasurements], numOfMeasurements);	// make this member, then set up this + error in the default + extract maybe
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   307
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   308
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   309
	// Add repeat items to the pos info array.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   310
	for (TInt i = 0; i < repeat; i++)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   311
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   312
		TPositionGpsMeasurementInfo measureInfo;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   313
		TPositionGpsMeasurementData measureData;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   314
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   315
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   316
		// Alloc a update item.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   317
		iUpdate = new(ELeave) TLbsModuleUpdateItem();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   318
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   319
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   320
		// Set measurement info.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   321
		for (TInt j = 0; j < numOfMeasurements; j++)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   322
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   323
			measureData.SetSatelliteId(j + 1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   324
			measureData.SetCarrierNoiseRatio((j+1) + 1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   325
			measureData.SetDoppler((j+1) + 2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   326
			measureData.SetWholeGpsChips((j+1) + 3);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   327
			measureData.SetFractionalGpsChips((j+1) + 4);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   328
			measureData.SetMultiPathIndicator(TPositionGpsMeasurementData::EMultiPathLow);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   329
			measureData.SetPseudoRangeRmsError((j+1) + 5);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   330
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   331
			User::LeaveIfError(measureInfo.AppendMeasurementData(measureData));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   332
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   333
		measureInfo.SetGpsTimeOfWeek(i + 1000);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   334
		iUpdate->SetMeasurement(measureInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   335
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   336
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   337
		// Set position update.		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   338
		// Optional fields are present fill out pos info based on them.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   339
		if (iFields[3].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   340
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   341
			DefaultData();	// This will ensure the pos info items are set to a default value for any incomplete sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   342
			ExtractDataL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   343
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   344
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   345
		// Otherwise use default values.			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   346
		else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   347
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   348
			DefaultData();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   349
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   350
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   351
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   352
		// Optional error value is present. Set update error.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   353
		TInt updateErr = KErrNone;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   354
		if (iFields[EUpdateErr].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   355
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   356
			ExtractValueL(iFields[EUpdateErr], updateErr);		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   357
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   358
		iUpdate->SetError(updateErr);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   359
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   360
		// Optional time delay(could be negative)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   361
		TInt updateDelay = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   362
		if (iFields[EUpdateDelay].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   363
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   364
			ExtractValueL(iFields[EUpdateDelay], updateDelay);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   365
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   366
		iUpdate->SetDelay(updateDelay);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   367
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   368
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   369
		// Add to array, and reset pointer.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   370
		iUpdateArr.AppendL(iUpdate);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   371
		iUpdate = NULL;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   372
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   373
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   374
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   375
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   376
void CUpdateConfigReader::ExtractDataL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   377
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   378
	// Access the position info from the update structure.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   379
	TPositionSatelliteInfo	posInfo = iUpdate->Position();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   380
	TPosition position;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   381
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   382
	// Process fields.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   383
	TReal64 latitude;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   384
	TReal64 longitude;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   385
	TReal32 altitude;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   386
	TReal32 horzAccuracy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   387
	TReal32 vertAccuracy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   388
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   389
	ExtractValueL(iFields[EPosLatitude], latitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   390
	ExtractValueL(iFields[EPosLongitude], longitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   391
	ExtractValueL(iFields[EPosAltitude], altitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   392
	ExtractValueL(iFields[EPosHorzAccuracy], horzAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   393
	ExtractValueL(iFields[EPosVertAccuracy], vertAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   394
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   395
	// Set values.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   396
	position.SetCoordinate(latitude, longitude, altitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   397
	position.SetAccuracy(horzAccuracy, vertAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   398
	position.SetCurrentTime();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   399
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   400
	posInfo.SetPosition(position);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   401
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   402
	iUpdate->SetPosition(posInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   403
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   404
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   405
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   406
void CUpdateConfigReader::DefaultData()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   407
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   408
	// Access the position info from the update structure.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   409
	TPositionSatelliteInfo	posSatalliteInfo = iUpdate->Position();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   410
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   411
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   412
	// Fill out default position data.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   413
	TPosition position;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   414
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   415
	position.SetCoordinate(DEFAULT_NOTIFY_POS_UPDATE_LATITUDE, DEFAULT_NOTIFY_POS_UPDATE_LONGITUDE, DEFAULT_NOTIFY_POS_UPDATE_ALTITUDE);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   416
	position.SetAccuracy(DEFAULT_NOTIFY_POS_UPDATE_HORIZONTAL_ACCURACY, DEFAULT_NOTIFY_POS_UPDATE_VERTICAL_ACCURACY);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   417
	position.SetCurrentTime();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   418
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   419
	posSatalliteInfo.SetPosition(position);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   420
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   421
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   422
	// Fill out default course data.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   423
	TCourse course;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   424
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   425
	course.SetSpeed(DEFAULT_NOTIFY_POS_UPDATE_SPEED);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   426
	course.SetHeading(DEFAULT_NOTIFY_POS_UPDATE_HEADING);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   427
	course.SetSpeedAccuracy(DEFAULT_NOTIFY_POS_UPDATE_SPEED_ACCURACY);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   428
	course.SetHeadingAccuracy(DEFAULT_NOTIFY_POS_UPDATE_HEADING_ACCURACY);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   429
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   430
	posSatalliteInfo.SetCourse(course);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   431
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   432
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   433
	// Fill out default satalliteInfo.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   434
	TSatelliteData satellite;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   435
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   436
	satellite.SetSatelliteId(DEFAULT_NOTIFY_POS_UPDATE_SATELLITE_ID1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   437
	satellite.SetAzimuth(DEFAULT_NOTIFY_POS_UPDATE_AZIMUTH1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   438
	satellite.SetElevation(DEFAULT_NOTIFY_POS_UPDATE_ELEVATION1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   439
	satellite.SetIsUsed(DEFAULT_NOTIFY_POS_UPDATE_IS_USED1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   440
	satellite.SetSignalStrength(DEFAULT_NOTIFY_POS_UPDATE_SIGNAL_STRENGTH1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   441
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   442
	posSatalliteInfo.AppendSatelliteData(satellite);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   443
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   444
	satellite.SetSatelliteId(DEFAULT_NOTIFY_POS_UPDATE_SATELLITE_ID2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   445
	satellite.SetAzimuth(DEFAULT_NOTIFY_POS_UPDATE_AZIMUTH2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   446
	satellite.SetElevation(DEFAULT_NOTIFY_POS_UPDATE_ELEVATION2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   447
	satellite.SetIsUsed(DEFAULT_NOTIFY_POS_UPDATE_IS_USED2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   448
	satellite.SetSignalStrength(DEFAULT_NOTIFY_POS_UPDATE_SIGNAL_STRENGTH2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   449
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   450
	posSatalliteInfo.AppendSatelliteData(satellite);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   451
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   452
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   453
	iUpdate->SetPosition(posSatalliteInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   454
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   455
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   456
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   457
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   458
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   459
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   460
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   461
/*********************** Position Info Reader ************************/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   462
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   463
CPosInfoConfigReader* CPosInfoConfigReader::NewL(const TDesC &aConfigFileName, const TDesC& aConfigSection, RPointerArray<TAny>& aPosInfoArr)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   464
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   465
	return new (ELeave) CPosInfoConfigReader(aConfigFileName, aConfigSection, aPosInfoArr);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   466
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   467
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   468
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   469
CPosInfoConfigReader::CPosInfoConfigReader(const TDesC &aConfigFileName, const TDesC& aConfigSection, RPointerArray<TAny>& aPosInfoArr) : CConfigReaderBase(aConfigFileName, aConfigSection), iPosInfoArr(aPosInfoArr)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   470
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   471
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   472
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   473
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   474
void CPosInfoConfigReader::HandleSentenceL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   475
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   476
	// Not a position info sentence, ignore all other valid sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   477
	if (	(iNumFields == 0) || (
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   478
			(iFields[0].Compare(_L8("position")) != 0) &&	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   479
			(iFields[0].Compare(_L8("course")) != 0) &&
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   480
			(iFields[0].Compare(_L8("satellite")) != 0) ))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   481
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   482
		return;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   483
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   484
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   485
	// Determine the number of times to repeat the pos info.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   486
	TInt repeat = 1;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   487
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   488
	if (iFields[1].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   489
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   490
		ExtractValueL(iFields[1], repeat);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   491
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   492
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   493
	// Add repeat items to the pos info array.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   494
	for (TInt i = 0; i < repeat; i++)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   495
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   496
		// Alloc a Satellite type info.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   497
		iPosInfo = new(ELeave) TPositionSatelliteInfo();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   498
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   499
		// Optional fields are present fill out pos info based on them.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   500
		if (iFields[2].Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   501
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   502
			DefaultData();	// This will ensure the pos info items are set to a default value for any incomplete sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   503
			ExtractDataL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   504
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   505
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   506
		// Otherwise use default values.			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   507
		else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   508
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   509
			DefaultData();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   510
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   511
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   512
		// Add to array, and reset pointer.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   513
		User::LeaveIfError(iPosInfoArr.Append(iPosInfo));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   514
		iPosInfo = NULL;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   515
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   516
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   517
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   518
// i think we will always have to call default to ensure we set things for missing fields
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   519
void CPosInfoConfigReader::ExtractDataL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   520
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   521
	// TODO: we need to support something like this, ie $position,1,10,2.3* which is lat, long only
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   522
	// I think it will because extract value deals with empty strings
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   523
	if (iPosInfo->PositionClassType() & EPositionInfoClass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   524
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   525
		TPosition position;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   526
		TPositionInfo& posInfo = static_cast<TPositionInfo&>(*iPosInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   527
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   528
		TReal64 latitude;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   529
		TReal64 longitude;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   530
		TReal32 altitude;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   531
		// TODO: TUid datum;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   532
		TReal32 horzAccuracy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   533
		TReal32 vertAccuracy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   534
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   535
		ExtractValueL(iFields[EPosLatitude], latitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   536
		ExtractValueL(iFields[EPosLongitude], longitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   537
		ExtractValueL(iFields[EPosAltitude], altitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   538
		// TODO: ExtractUidL() not sure what datum is
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   539
		ExtractValueL(iFields[EPosHorzAccuracy], horzAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   540
		ExtractValueL(iFields[EPosVertAccuracy], vertAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   541
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   542
		position.SetCoordinate(latitude, longitude, altitude);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   543
		position.SetAccuracy(horzAccuracy, vertAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   544
		position.SetCurrentTime();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   545
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   546
		posInfo.SetPosition(position);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   547
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   548
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   549
	if (iPosInfo->PositionClassType() & EPositionCourseInfoClass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   550
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   551
		TCourse course;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   552
		TPositionCourseInfo& posCourseInfo = static_cast<TPositionCourseInfo&>(*iPosInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   553
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   554
		TReal32 speed;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   555
		TReal32 heading;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   556
		TReal32 speedAccuracy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   557
		TReal32 headingAccuracy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   558
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   559
		ExtractValueL(iFields[EPosSpeed], speed);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   560
		ExtractValueL(iFields[EPosHeading], heading);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   561
		ExtractValueL(iFields[EPosSpeedAccuracy], speedAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   562
		ExtractValueL(iFields[EPosHeadingAccuracy], headingAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   563
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   564
		course.SetSpeed(speed);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   565
		course.SetHeading(heading);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   566
		course.SetSpeedAccuracy(speedAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   567
		course.SetHeadingAccuracy(headingAccuracy);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   568
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   569
		posCourseInfo.SetCourse(course);		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   570
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   571
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   572
	if (iPosInfo->PositionClassType() & EPositionSatelliteInfoClass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   573
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   574
		// TODO satellite info
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   575
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   576
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   577
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   578
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   579
void CPosInfoConfigReader::DefaultData()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   580
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   581
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   582
	if (iPosInfo->PositionClassType() & EPositionInfoClass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   583
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   584
		TPosition position;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   585
		TPositionInfo& posInfo = static_cast<TPositionInfo&>(*iPosInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   586
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   587
		position.SetCoordinate(DEFAULT_NOTIFY_POS_UPDATE_LATITUDE, DEFAULT_NOTIFY_POS_UPDATE_LONGITUDE, DEFAULT_NOTIFY_POS_UPDATE_ALTITUDE);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   588
		position.SetAccuracy(DEFAULT_NOTIFY_POS_UPDATE_HORIZONTAL_ACCURACY, DEFAULT_NOTIFY_POS_UPDATE_VERTICAL_ACCURACY);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   589
		position.SetCurrentTime();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   590
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   591
		posInfo.SetPosition(position);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   592
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   593
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   594
	if (iPosInfo->PositionClassType() & EPositionCourseInfoClass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   595
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   596
		TCourse course;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   597
		TPositionCourseInfo& posCourseInfo = static_cast<TPositionCourseInfo&>(*iPosInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   598
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   599
		course.SetSpeed(DEFAULT_NOTIFY_POS_UPDATE_SPEED);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   600
		course.SetHeading(DEFAULT_NOTIFY_POS_UPDATE_HEADING);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   601
		course.SetSpeedAccuracy(DEFAULT_NOTIFY_POS_UPDATE_SPEED_ACCURACY);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   602
		course.SetHeadingAccuracy(DEFAULT_NOTIFY_POS_UPDATE_HEADING_ACCURACY);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   603
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   604
		posCourseInfo.SetCourse(course);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   605
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   606
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   607
	if (iPosInfo->PositionClassType() & EPositionSatelliteInfoClass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   608
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   609
		TSatelliteData satellite;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   610
		TPositionSatelliteInfo& posSatalliteInfo = static_cast<TPositionSatelliteInfo&>(*iPosInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   611
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   612
		satellite.SetSatelliteId(DEFAULT_NOTIFY_POS_UPDATE_SATELLITE_ID1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   613
		satellite.SetAzimuth(DEFAULT_NOTIFY_POS_UPDATE_AZIMUTH1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   614
		satellite.SetElevation(DEFAULT_NOTIFY_POS_UPDATE_ELEVATION1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   615
		satellite.SetIsUsed(DEFAULT_NOTIFY_POS_UPDATE_IS_USED1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   616
		satellite.SetSignalStrength(DEFAULT_NOTIFY_POS_UPDATE_SIGNAL_STRENGTH1);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   617
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   618
		posSatalliteInfo.AppendSatelliteData(satellite);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   619
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   620
		satellite.SetSatelliteId(DEFAULT_NOTIFY_POS_UPDATE_SATELLITE_ID2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   621
		satellite.SetAzimuth(DEFAULT_NOTIFY_POS_UPDATE_AZIMUTH2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   622
		satellite.SetElevation(DEFAULT_NOTIFY_POS_UPDATE_ELEVATION2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   623
		satellite.SetIsUsed(DEFAULT_NOTIFY_POS_UPDATE_IS_USED2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   624
		satellite.SetSignalStrength(DEFAULT_NOTIFY_POS_UPDATE_SIGNAL_STRENGTH2);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   625
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   626
		posSatalliteInfo.AppendSatelliteData(satellite);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   627
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   628
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   629
/* For extended tests when/if we have them.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   630
	if (infoBase.PositionClassType() & EPositionClassTestExtension)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   631
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   632
		TExtPosInfo* genInfo = reinterpret_cast<TExtPosInfo*>(buffer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   633
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   634
		genInfo->iGalaxy = DEFAULT_NOTIFY_POS_UPDATE_EXT_GALAXY;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   635
		genInfo->iSolarSystem = DEFAULT_NOTIFY_POS_UPDATE_EXT_SOLARSYS;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   636
		genInfo->iStarDate = DEFAULT_NOTIFY_POS_UPDATE_EXT_STARDATE;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   637
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   638
*/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   639
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   640
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   641
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   642
/*********************** Module Status Reader ************************/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   643
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   644
CModuleStatusConfigReader* CModuleStatusConfigReader::NewL(const TDesC &aConfigFileName, const TDesC& aConfigSection, TPositionModuleStatus& aModuleStatus)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   645
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   646
	return new (ELeave) CModuleStatusConfigReader(aConfigFileName, aConfigSection, aModuleStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   647
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   648
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   649
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   650
CModuleStatusConfigReader::CModuleStatusConfigReader(const TDesC &aConfigFileName, const TDesC& aConfigSection, TPositionModuleStatus& aModuleStatus) : CConfigReaderBase(aConfigFileName, aConfigSection), iModuleStatus(aModuleStatus)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   651
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   652
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   653
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   654
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   655
void CModuleStatusConfigReader::ExtractValueDevice(const TPtrC8& aField, TPositionModuleStatus::TDeviceStatus& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   656
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   657
	// Set device status.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   658
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   659
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   660
		if (aField.Compare(_L8("device_error")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   661
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   662
			aValue = TPositionModuleStatus::EDeviceError;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   663
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   664
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   665
		else if (aField.Compare(_L8("device_disable")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   666
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   667
			aValue = TPositionModuleStatus::EDeviceDisabled;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   668
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   669
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   670
		else if (aField.Compare(_L8("device_inactive")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   671
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   672
			aValue = TPositionModuleStatus::EDeviceInactive;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   673
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   674
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   675
		else if (aField.Compare(_L8("device_initalising")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   676
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   677
			aValue = TPositionModuleStatus::EDeviceInitialising;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   678
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   679
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   680
		else if (aField.Compare(_L8("device_standby")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   681
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   682
			aValue = TPositionModuleStatus::EDeviceStandBy;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   683
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   684
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   685
		else if (aField.Compare(_L8("device_ready")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   686
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   687
			aValue = TPositionModuleStatus::EDeviceReady;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   688
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   689
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   690
		else if (aField.Compare(_L8("device_active")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   691
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   692
			aValue = TPositionModuleStatus::EDeviceActive;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   693
			}		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   694
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   695
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   696
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   697
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   698
void CModuleStatusConfigReader::ExtractValueDataQuality(const TPtrC8& aField, TPositionModuleStatus::TDataQualityStatus& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   699
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   700
	// Set data quality.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   701
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   702
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   703
		if (aField.Compare(_L8("data_quality_loss")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   704
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   705
			aValue = TPositionModuleStatus::EDataQualityLoss;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   706
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   707
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   708
		else if (aField.Compare(_L8("data_quality_partial")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   709
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   710
			aValue = TPositionModuleStatus::EDataQualityPartial;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   711
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   712
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   713
		else if (aField.Compare(_L8("data_quality_normal")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   714
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   715
			aValue = TPositionModuleStatus::EDataQualityNormal;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   716
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   717
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   718
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   719
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   720
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   721
void CModuleStatusConfigReader::HandleSentenceL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   722
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   723
	// Not a 'updateoptions' sentence, ignore all other valid sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   724
	if ( (iNumFields == 0) || (iFields[EModuleStatusType].Compare(_L8("modstatus")) != 0) )
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   725
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   726
		return;	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   727
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   728
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   729
	// Set default values for any fields not present in the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   730
	DefaultData();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   731
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   732
	// Set values from set fields in the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   733
	if (iNumFields == 3)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   734
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   735
		ExtractDataL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   736
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   737
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   738
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   739
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   740
void CModuleStatusConfigReader::ExtractDataL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   741
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   742
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   743
	TPositionModuleStatus::TDeviceStatus device;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   744
	TPositionModuleStatus::TDataQualityStatus dataQuality;			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   745
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   746
	ExtractValueDevice(iFields[EModuleStatusDevice], device);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   747
	ExtractValueDataQuality(iFields[EModuleStatusDataQuality], dataQuality);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   748
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   749
	iModuleStatus.SetDeviceStatus(device);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   750
	iModuleStatus.SetDataQualityStatus(dataQuality);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   751
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   752
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   753
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   754
void CModuleStatusConfigReader::DefaultData()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   755
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   756
	iModuleStatus.SetDeviceStatus(TPositionModuleStatus::EDeviceReady);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   757
	iModuleStatus.SetDataQualityStatus(TPositionModuleStatus::EDataQualityNormal);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   758
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   759
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   760
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   761
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   762
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   763
/*********************** Update Options Reader ************************/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   764
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   765
CUpdateOptsConfigReader* CUpdateOptsConfigReader::NewL(const TDesC &aConfigFileName, const TDesC& aConfigSection, TPositionUpdateOptions& aUpdateOpts)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   766
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   767
	return new (ELeave) CUpdateOptsConfigReader(aConfigFileName, aConfigSection, aUpdateOpts);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   768
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   769
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   770
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   771
CUpdateOptsConfigReader::CUpdateOptsConfigReader(const TDesC &aConfigFileName, const TDesC& aConfigSection, TPositionUpdateOptions& aUpdateOpts) : CConfigReaderBase(aConfigFileName, aConfigSection), iUpdateOpts(aUpdateOpts)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   772
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   773
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   774
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   775
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   776
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   777
void CUpdateOptsConfigReader::ExtractValueL(const TPtrC8& aField, TTimeIntervalMicroSeconds& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   778
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   779
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   780
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   781
		TLex8 lex(aField);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   782
		TInt64 value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   783
		TInt err = lex.Val(value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   784
		User::LeaveIfError(err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   785
		aValue = value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   786
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   787
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   788
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   789
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   790
void CUpdateOptsConfigReader::ExtractValue(const TPtrC8& aField, TBool& aValue)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   791
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   792
	aValue = EFalse;	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   793
	if (aField.Length() != 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   794
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   795
		if (aField.Compare(_L8("true")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   796
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   797
			aValue = ETrue;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   798
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   799
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   800
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   801
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   802
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   803
void CUpdateOptsConfigReader::HandleSentenceL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   804
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   805
	// Not a 'updateoptions' sentence, ignore all other valid sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   806
	if ( (iNumFields == 0) || (iFields[EUpdateOptsType].Compare(_L8("updateoptions")) != 0) )
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   807
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   808
		return;	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   809
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   810
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   811
	// Set default values for any fields not present in the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   812
	DefaultData();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   813
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   814
	// Set values from set fields in the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   815
	if (iNumFields == 5)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   816
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   817
		ExtractDataL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   818
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   819
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   820
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   821
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   822
void CUpdateOptsConfigReader::ExtractDataL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   823
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   824
	TTimeIntervalMicroSeconds interval;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   825
	TTimeIntervalMicroSeconds timeout;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   826
	TTimeIntervalMicroSeconds maxage;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   827
	TBool partialUpdates;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   828
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   829
	ExtractValueL(iFields[EUpdateOptsInterval], interval);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   830
	ExtractValueL(iFields[EUpdateOptsTimeOut], timeout);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   831
	ExtractValueL(iFields[EUpdateOptsMaxAge], maxage);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   832
	ExtractValue(iFields[EUpdateOptsPartialUpdates], partialUpdates);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   833
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   834
	iUpdateOpts.SetUpdateInterval(interval);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   835
	iUpdateOpts.SetUpdateTimeOut(timeout);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   836
	iUpdateOpts.SetMaxUpdateAge(maxage);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   837
	iUpdateOpts.SetAcceptPartialUpdates(partialUpdates);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   838
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   839
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   840
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   841
void CUpdateOptsConfigReader::DefaultData()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   842
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   843
	iUpdateOpts.SetUpdateInterval(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   844
	iUpdateOpts.SetUpdateTimeOut(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   845
	iUpdateOpts.SetMaxUpdateAge(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   846
	iUpdateOpts.SetAcceptPartialUpdates(EFalse);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   847
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   848
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   849
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   850
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   851
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   852
CAgpsModuleModesConfigReader* CAgpsModuleModesConfigReader::NewL(const TDesC &aConfigFileName, const TDesC& aConfigSection, 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   853
					RPointerArray<TLbsGpsOptions>& aModuleModes)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   854
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   855
	return new (ELeave) CAgpsModuleModesConfigReader(aConfigFileName, aConfigSection, aModuleModes);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   856
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   857
CAgpsModuleModesConfigReader::CAgpsModuleModesConfigReader(const TDesC &aConfigFileName, const TDesC& aConfigSection, 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   858
					RPointerArray<TLbsGpsOptions>& aModuleModes)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   859
	: CConfigReaderBase(aConfigFileName, aConfigSection), iModuleModes(aModuleModes)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   860
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   861
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   862
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   863
void CAgpsModuleModesConfigReader::HandleSentenceL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   864
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   865
	// Not a 'modulemodes' sentence, ignore all other valid sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   866
	if ( (iNumFields == 0) || (iFields[EModuleModesType].Compare(_L8("modulemodes")) != 0) )
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   867
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   868
		return;	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   869
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   870
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   871
	// Set default values for any fields not present in the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   872
	DefaultData();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   873
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   874
	// Set values from set fields in the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   875
	if (iNumFields > 1)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   876
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   877
		ExtractDataL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   878
		}		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   879
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   880
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   881
void CAgpsModuleModesConfigReader::DefaultData()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   882
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   883
 * Does nothing since there is no default data to be set for the expected gps mode
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   884
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   885
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   886
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   887
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   888
void CAgpsModuleModesConfigReader::ExtractDataL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   889
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   890
	TInt gpsModeInt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   891
	ExtractValueL(iFields[EGpsModeField], gpsModeInt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   892
	CLbsAdmin::TGpsMode gpsMode(static_cast<CLbsAdmin::TGpsMode>(gpsModeInt));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   893
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   894
	if(iNumFields == EGpsModeField+1)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   895
		{ // there is no options array
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   896
		TLbsGpsOptions* gpsOptions = new(ELeave) TLbsGpsOptions;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   897
		gpsOptions->SetGpsMode(gpsMode);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   898
		iModuleModes.AppendL(gpsOptions);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   899
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   900
	else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   901
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   902
		TLbsGpsOptionsArray* gpsOptionsArray = new(ELeave) TLbsGpsOptionsArray;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   903
		gpsOptionsArray->SetGpsMode(gpsMode);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   904
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   905
		for(TInt index = EBegginingOfGpsOptionsArray; index < iNumFields; ++index)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   906
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   907
			TLbsGpsOptionsItem optionsItem;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   908
			TInt posUpdateTypeInt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   909
			ExtractValueL(iFields[index], posUpdateTypeInt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   910
			TLbsGpsOptionsItem::TPosUpdateType posUpdateType(static_cast<TLbsGpsOptionsItem::TPosUpdateType>(posUpdateTypeInt));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   911
			optionsItem.SetLocUpdateType(posUpdateType);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   912
			gpsOptionsArray->AppendOptionItem(optionsItem);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   913
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   914
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   915
		iModuleModes.AppendL(gpsOptionsArray);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   916
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   917
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   918
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   919
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   920
CClientDetailsConfigReader* CClientDetailsConfigReader::NewL(const TDesC &aConfigFileName, const TDesC& aConfigSection, 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   921
					RArray<TCTClientDetails>& aClientDetailsArray)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   922
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   923
	return new (ELeave) CClientDetailsConfigReader(aConfigFileName, aConfigSection, aClientDetailsArray);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   924
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   925
CClientDetailsConfigReader::CClientDetailsConfigReader(const TDesC &aConfigFileName, const TDesC& aConfigSection, 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   926
					RArray<TCTClientDetails>& aClientDetailsArray)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   927
	: CConfigReaderBase(aConfigFileName, aConfigSection), 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   928
		iClientDetailsArray(aClientDetailsArray)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   929
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   930
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   931
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   932
void CClientDetailsConfigReader::HandleSentenceL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   933
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   934
	// Not a 'clientdetails' sentence, ignore all other valid sentences.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   935
	if ( (iNumFields == 0) || (iFields[0].Compare(_L8("clientdetails")) != 0) )
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   936
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   937
		return;	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   938
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   939
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   940
	ExtractDataL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   941
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   942
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   943
void CClientDetailsConfigReader::DefaultData()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   944
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   945
 * Does nothing since there is no default data to be set for the expected gps mode
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   946
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   947
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   948
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   949
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   950
void CClientDetailsConfigReader::ExtractDataL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   951
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   952
	TCTClientDetails clientDetails;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   953
	TInt value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   954
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   955
	if(iNumFields > 1)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   956
		{ // initial delay - after which session ID it should start - default is 0
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   957
		ExtractValueL(iFields[1], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   958
		clientDetails.iSessionIdDelay = value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   959
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   960
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   961
	if(iNumFields > 2)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   962
		{ // initial delay - after which step in the session it should start - default is 0
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   963
		ExtractValueL(iFields[2], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   964
		clientDetails.iSessionStepDelay = value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   965
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   966
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   967
	if(iNumFields > 3)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   968
		{ // number of NPUDs issued by the client - default is 1 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   969
		ExtractValueL(iFields[3], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   970
		clientDetails.iNumberOfNPUDs = value > 0 ? value : 1;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   971
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   972
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   973
	if(iNumFields > 4)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   974
		{ // the update interval - default is 0 (no tracking)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   975
		ExtractValueL(iFields[4], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   976
		clientDetails.iUpdateOptions.SetUpdateInterval(value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   977
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   978
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   979
	if(clientDetails.iNumberOfNPUDs == 1 || clientDetails.iUpdateOptions.UpdateInterval() == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   980
		{ // if one of the params indicates no tracking then set the others to say the same
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   981
		clientDetails.iUpdateOptions.SetUpdateInterval(0);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   982
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   983
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   984
	if(iNumFields > 5)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   985
		{ // the max fix time - default is 0 (no timeout)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   986
		ExtractValueL(iFields[5], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   987
		clientDetails.iUpdateOptions.SetUpdateTimeOut(value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   988
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   989
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   990
	if(iNumFields > 6)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   991
		{ // the max update age - default is 0
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   992
		ExtractValueL(iFields[6], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   993
		clientDetails.iUpdateOptions.SetMaxUpdateAge(value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   994
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   995
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   996
	if(iNumFields > 7)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   997
		{ // if partial updates should be accepted - default is EFalse
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   998
		if (iFields[7].Compare(_L8("true")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   999
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1000
			clientDetails.iUpdateOptions.SetAcceptPartialUpdates(ETrue);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1001
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1002
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1003
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1004
	if(iNumFields > 8)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1005
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1006
			{ // if partial updates should be accepted - default is EFalse
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1007
			if (iFields[8].Compare(_L8("cancel")) == 0)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1008
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1009
				clientDetails.iCancelRequest = ETrue;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1010
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1011
			}		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1012
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1013
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1014
	if(iNumFields > 9)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1015
		{ // delay after which step in the session the last request should be cancelled - default is 0
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1016
		ExtractValueL(iFields[9], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1017
		clientDetails.iSessionIdCancel = value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1018
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1019
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1020
	if(iNumFields > 10)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1021
		{ // delay after which session ID the last request should be cancelled - default is 0
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1022
		ExtractValueL(iFields[10], value);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1023
		clientDetails.iSessionStepCancel = value;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1024
		}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1025
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1026
	iClientDetailsArray.AppendL(clientDetails);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
  1027
	}