First public contribution.
1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __TDELIMITEDDATACOMMON_H__
17 #define __TDELIMITEDDATACOMMON_H__
29 LOCAL_C void TestDelimitedDataExtractionL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
30 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
32 LOCAL_C void TestDelimitedDataReverseExtractionL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
33 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
35 LOCAL_C void TestDelimitedDataDelimiterPresenceL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
36 const TDesC& aData, TBool aFrontDelim, TBool aBackDelim);
38 LOCAL_C void TestDelimitedDataRemainderL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
39 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
41 LOCAL_C void TestDelimitedDataRemainderReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
42 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
44 LOCAL_C void TestDelimitedDataDesL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, const TDesC& aData);
46 LOCAL_C void TestDelimitedDataPushFrontL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
47 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
49 LOCAL_C void TestDelimitedDataPushAndEscapeFrontL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
50 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
52 LOCAL_C void TestDelimitedDataPushBackL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
53 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
55 LOCAL_C void TestDelimitedDataPushAndEscapeBackL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
56 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
58 LOCAL_C void TestDelimitedDataPopFrontL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
59 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
61 LOCAL_C void TestDelimitedDataPopBackL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
62 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2);
64 LOCAL_C void TestDelimitedDataAddAndTrimFrontAndBackDelimiterL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness, const TDesC& aData);
66 LOCAL_C void TestDelimitedDataInsertAndParseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
67 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos);
69 LOCAL_C void TestDelimitedDataRemoveAndParseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
70 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos);
72 LOCAL_C void TestDelimitedDataInsertAndParseReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
73 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos);
75 LOCAL_C void TestDelimitedDataRemoveAndParseReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
76 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos);
78 LOCAL_C void TestDelimitedDataInsertEscapeAndParseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
79 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos);
81 LOCAL_C void TestDelimitedDataInsertEscapeAndParseReverseL(const TDesC& aTestTitle, CIpuTestHarness* aTestHarness,
82 const TDesC& aData, VA_LIST& aList1, VA_LIST& aList2, TInt aStartPos);
86 // Templated helper functions
90 template<class HBufCType, class TPtrCType, class TDelimitedParserType>
91 TInt DoDelimitedDataParsingL(const TDelimitedParserType& aParser, VA_LIST& aSegments);
93 template<class HBufCType>
94 HBufCType* GetNextArgLC(VA_LIST& aList);
96 template<class TDelimitedParserType>
97 TInt DoDelimiterPresenceTest(const TDelimitedParserType& aParser, TBool aFrontDelim, TBool aBackDelim);
99 template<class HBufCType, class TPtrCType, class TDelimitedParserType>
100 TInt DoDelimitedDataRemainderTestL(const TDelimitedParserType& aParser, VA_LIST& aRemainders);
102 template<class TDelimitedParserType, class TDesCType>
103 TInt DoDelimitedDataDes(const TDelimitedParserType& aParser, const TDesCType& aDelimitedData);
105 template<class HBufCType, class CDelimitedDataType>
106 TInt DoDelimitedDataPushFrontL(CDelimitedDataType* aParser, VA_LIST& aData);
108 template<class HBufCType, class CDelimitedDataType>
109 TInt DoDelimitedDataPushBackL(CDelimitedDataType* aParser, VA_LIST& aData);
111 template<class HBufCType, class CDelimitedDataType>
112 TInt DoDelimitedDataPopFrontL(CDelimitedDataType* aParser, VA_LIST& aData);
114 template<class HBufCType, class CDelimitedDataType>
115 TInt DoDelimitedDataPopBackL(CDelimitedDataType* aParser, VA_LIST& aData);
117 template<class CDelimitedDataType>
118 TInt DoDelimitedDataAddAndTrimFrontAndBackDelimiterL(CDelimitedDataType* aParser);
120 template<class CDelimitedDataType>
121 TInt DoDelimitedDataParseToPosition(CDelimitedDataType* aParser, TInt aStartPos);
123 template<class HBufCType, class TPtrCType, class CDelimitedDataType>
124 TInt DoDelimitedDataInsertL(CDelimitedDataType* aParser, VA_LIST& aData);
126 template<class HBufCType, class TPtrCType, class CDelimitedDataType>
127 TInt DoDelimitedDataRemoveL(CDelimitedDataType* aParser, VA_LIST& aData);
129 template<class HBufCType, class TPtrCType, class CDelimitedDataType>
130 TInt DoDelimitedDataInsertAndEscapeL(CDelimitedDataType* aParser, VA_LIST& aData);
132 template<class HBufCType, class CDelimitedDataType>
133 TInt DoDelimitedDataPushAndEscapeFrontL(CDelimitedDataType* aParser, VA_LIST& aData);
135 template<class HBufCType, class CDelimitedDataType>
136 TInt DoDelimitedDataPushAndEscapeBackL(CDelimitedDataType* aParser, VA_LIST& aData);
138 #endif // __TDELIMITEDDATACOMMON_H__