CTulAddressStringTokenizer Class Reference
class CTulAddressStringTokenizer : public CBase
|
Address String Tokenizer API offers methods for parsing phone numbers and e-mail, URL and URI addresses from the given text. The API consists of the
CTulAddressStringTokenizer
class.
Usage:
#include <tuladdressstringtokenizer.h>
// SFoundItem instance
CTulAddressStringTokenizer::SFoundItem item;
// Some text
TBufC<256> strSomeText(_L("Mail to me@someplace.com or call 040 1234567.
You can also tune in to audio feed at rtsp://someplace.com/somefeed.ra."));
// First the user has to create an instance of CTulAddressStringTokenizer by using the
// factory method NewL(). The method takes two parameters. The first
// parameter defines the text to be searched from and the second parameter
// tells what exactly is being looked for.
CTulAddressStringTokenizer singleSearch = CTulAddressStringTokenizer::NewL(strSomeText,
CTulAddressStringTokenizer::EFindItemSearchMailAddressBin);
// The passed text is parsed in construction, and found items can be fetched
// by using the ItemArray() method. It returns a constant array containing
// all the found items. The interface also offers helper functions for
// handling the item array by itself.
// Get count of found items.
TInt count(singleSearch->ItemCount());
// Get currently selected item (me@someplace.com) to the result1 variable.
singleSearch->Item(item);
TPtrC16 result1(strSomeText.Mid(item.iStartPos, item.iLength));
// Deallocate memory
delete singleSearch;
// Create an instance of CTulAddressStringTokenizer and look for all possible
// things (cases work as binary mask).
CTulAddressStringTokenizer* multiSearch = CTulAddressStringTokenizer::NewL(strSomeText,
(CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin |
CTulAddressStringTokenizer::EFindItemSearchURLBin |
CTulAddressStringTokenizer::EFindItemSearchMailAddressBin |
CTulAddressStringTokenizer::EFindItemSearchScheme));
// Get count of found items.
TInt count2(multiSearch->ItemCount());
// Get currently selected item to the result2 variable.
multiSearch->Item(item);
// Debug print all items and their type.
for( TInt i=0; i<count2; i++)
{
TPtrC16 result2(strSomeText.Mid(item.iStartPos, item.iLength));
RDebug::Print(_L("Found type %d item:"), item.iItemType);
RDebug::Print(_L("%S"), &result2);
multiSearch->NextItem(item);
}
// Deallocate memory
delete multiSearch;
Inherits from
-
CTulAddressStringTokenizer
Nested Classes and Structures
Constructor & Destructor Documentation
CTulAddressStringTokenizer()
CTulAddressStringTokenizer
|
(
|
)
|
[private]
|
CTulAddressStringTokenizer(const CTulAddressStringTokenizer &)
~CTulAddressStringTokenizer()
IMPORT_C
|
~CTulAddressStringTokenizer
|
(
|
)
|
|
Member Functions Documentation
AddItemL(TInt, TInt, TTokenizerSearchCase)
Adds item to search arrays. Adding is done so that arrays are always sorted. If added element would overlap a previously found element, it is not added.
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
ConstructL(const TDesC &, TInt, TInt)
void
|
ConstructL
|
(
|
const
TDesC
&
|
aText,
|
|
TInt
|
aSearchCases,
|
|
TInt
|
aMinNumbers
|
|
)
|
[private]
|
Parameters
const
TDesC
& aText
|
Text that will be parsed
|
TInt
aSearchCases
|
Identifies what items are we looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
TInt
aMinNumbers
|
Minimum count of numbers in a string when the string is considered as a phone number.
|
DoNewSearchL(const TDesC &, TInt)
IMPORT_C
TInt
|
DoNewSearchL
|
(
|
const
TDesC
&
|
aText,
|
|
TInt
|
aSearchCases
|
|
)
|
|
Executes a new search with the already created
CTulAddressStringTokenizer
instance. The position in the found items array is reset to the beginning of the array.
-
panic
-
ETulPanicInvalidTokenizerSearchCase in debug build if there is no valid search case.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
-
leave
-
one of the Symbian error codes.
Parameters
const
TDesC
& aText
|
will be parsed.
|
TInt
aSearchCases
|
identifies what items are we looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
DoNewSearchL(const TDesC &, TInt, TInt)
IMPORT_C
TInt
|
DoNewSearchL
|
(
|
const
TDesC
&
|
aText,
|
|
TInt
|
aSearchCases,
|
|
TInt
|
aMinNumbers
|
|
)
|
|
Executes a new search with the already created
CTulAddressStringTokenizer
instance. The position in the found items array is reset to the beginning of the array.
-
panic
-
ETulPanicInvalidTokenizerSearchCase in debug build if there is no valid search case.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
Parameters
const
TDesC
& aText
|
will be parsed.
|
TInt
aSearchCases
|
identifies what items are we looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
TInt
aMinNumbers
|
defines a minimum count of numbers in a phone number string, during a phone number search.
|
IsValidEmailChar(const TChar &)
TBool
|
IsValidEmailChar
|
(
|
const
TChar
&
|
charac
|
)
|
[private, static]
|
Character information methods
Parameters
const
TChar
& charac
|
a Character to be investigated
|
IsValidEmailHostChar(const TChar &)
TBool
|
IsValidEmailHostChar
|
(
|
const
TChar
&
|
charac
|
)
|
[private, static]
|
Character information methods
Parameters
const
TChar
& charac
|
a Character to be investigated
|
IsValidPhoneNumberChar(const TChar &)
TBool
|
IsValidPhoneNumberChar
|
(
|
const
TChar
&
|
charac
|
)
|
[private, static]
|
Character information methods
Parameters
const
TChar
& charac
|
a Character to be investigated
|
IsValidUrlChar(const TChar &)
TBool
|
IsValidUrlChar
|
(
|
const
TChar
&
|
charac
|
)
|
[private, static]
|
Character information methods
Parameters
const
TChar
& charac
|
a Character to be investigated
|
Item(SFoundItem &)
Gets the currently 'selected' item in the array of found items.
Parameters
SFoundItem
& aItem
|
contains the currently selected item after returning.
|
ItemCount()
IMPORT_C
TInt
|
ItemCount
|
(
|
)
|
const
|
Gets the number of items in the found items array.
NewL(const TDesC &, TInt)
Two-phase constructor method that is used to create a new instance of the
CTulAddressStringTokenizer
class. This instance can then be queried for the items defined by the second parameter. The actual search is executed during construction.
-
panic
-
ETulPanicInvalidTokenizerSearchCase in debug build if there is no valid search case.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
Parameters
const
TDesC
& aText
|
will be parsed.
|
TInt
aSearchCases
|
identifies what items we are looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
NewL(const TDesC &, TInt, TInt)
Two-phase constructor method that is used to create a new instance of the
CTulAddressStringTokenizer
class. This instance can then be queried for the items defined by the second parameter. The actual search is executed during construction.
-
panic
-
ETulPanicInvalidTokenizerSearchCase in debug build if there is no valid search case.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
Parameters
const
TDesC
& aText
|
will be parsed.
|
TInt
aSearchCases
|
identifies what items we are looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
TInt
aMinNumbers
|
defines a minimum count of numbers in a phone number string, during a phone number search.
|
NextItem(SFoundItem &)
Gets the next found item relative to the currently selected item. Moves the selection to point to the next item in the array of found items.
Parameters
SFoundItem
& aItem
|
contains the next item after returning.
|
ParseUrlL(const TDesC &, const TPtrC &, TInt)
Parses URL from a token. Is used by SearchUrlL method and if a URL was found it's appended to item array. Note that parsing for generic URIs is done with SearchGenericUriL -method.
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
Parameters
const
TDesC
& aType
|
a Type of URL to seach, i.e. www. wap. IP e.g.127.0.0.1
|
const
TPtrC
& aTokenPtr
|
Pointer to token that will be parsed
|
TInt
aTextOffset
|
Offset of the token (start position in the whole text)
|
PerformSearchL(const TDesC &, TInt)
void
|
PerformSearchL
|
(
|
const
TDesC
&
|
aText,
|
|
TInt
|
aSearchCases
|
|
)
|
[private]
|
Position()
IMPORT_C
TInt
|
Position
|
(
|
)
|
const
|
Gets the current position (or the position of the currently selected item) in the found items array.
PrevItem(SFoundItem &)
Gets the previous found item relative to the currently selected item. Moves the selection to point to the previous item in the array of found items..
Parameters
SFoundItem
& aItem
|
contains the previous item after returning.
|
ResetPosition()
IMPORT_C void
|
ResetPosition
|
(
|
)
|
|
Resets the position in item array to zero (beginning of the array).
SearchGenericUriL(const TDesC &)
TBool
|
SearchGenericUriL
|
(
|
const
TDesC
&
|
aText
|
)
|
[private]
|
Search algorithm for searching generic URIs
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
Parameters
const
TDesC
& aText
|
Text that will be parsed
|
SearchMailAddressL(const TDesC &)
TBool
|
SearchMailAddressL
|
(
|
const
TDesC
&
|
aText
|
)
|
[private]
|
Search algorithm for searching e-mail addresses
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
Parameters
const
TDesC
& aText
|
Text that will be parsed
|
SearchPhoneNumberL(const TDesC &)
TBool
|
SearchPhoneNumberL
|
(
|
const
TDesC
&
|
aText
|
)
|
[private]
|
Search algorithm for searching phone numbers
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
Parameters
const
TDesC
& aText
|
Text that will be parsed
|
SearchUrlL(const TDesC &, TBool)
TBool
|
SearchUrlL
|
(
|
const
TDesC
&
|
aText,
|
|
TBool
|
aFindFixedSchemas
|
|
)
|
[private]
|
Search fixed start URLs, i.e. URLs without schema (www., wap.). Also finds IPv4 addresses (*.*.*.*). As a special case, supports deprecated hardcoded schematic addresses finding (
http://,
https://,
rtsp://) to make sure deprecated search cases work as they did previously.
-
leave
-
KErrNone, if successful; otherwise one of the other system-wide error codes.
-
panic
-
ETulPanicDescriptorLength in debug build if item's position and/or length is out of the document's range.
Parameters
const
TDesC
& aText
|
Text that will be parsed
|
TBool
aFindFixedSchemas
|
If true, will find old fixed schematic URLs also
|
operator=(const CTulAddressStringTokenizer &)
Member Enumerations Documentation
Enum TTokenizerSearchCase
Enumeration to define the search case. Multiple enumerations can be used as binary mask.
Enumerators
EFindItemSearchPhoneNumberBin = 4
|
|
EFindItemSearchMailAddressBin = 8
|
|
EFindItemSearchURLBin = 16
|
|
EFindItemSearchScheme = 32
|
|
Member Data Documentation
CArrayFixFlat< SFoundItem > * iFoundItems
TInt
iMinNumbers
TInt
|
iMinNumbers
|
[private]
|
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.