CCalInstanceView::FindInstanceL() can search all text fields. It is supported by CalCommon::TCalSearchBehaviour.
The following fields are searchable:
Summary
Description
Location
Organizer Common Name
Organizer Address
Organizer Sent-By
Attendee Common Name
Attendee Address
Attendee Sent-By
The search string only needs to match one of the fields specified in the filter for it to be considered a matching instance.
It is important to note that an entry can have multiple attendees. This means that searching the attendee fields may become quite expensive for a large meeting.
Once the flag is added to CalCommon::TCalSearchBehaviour, it is passed to the constructor of CCalInstanceView::TCalSearchParams. The latter is a search parameter used when instances are found by using the API CCalInstanceView::FindInstanceL().
The enum CalCommon::TCalViewFilterFlags is used in entry view and instance view to specify entries that are of interest to the client. Class CalCommon::TCalTimeRange is used to define the time range within which instances fall.
An instance iterator is used to fetch instances and return them to the client one at a time. The iterator can be obtained via the API:
CCalInstanceIterator* CCalInstanceView::FindInstanceL(const CCalFindInstanceSettings& aSettings) const
CCalFindInstanceSettings is an extensible class containing all search parameters. CCalInstanceIterator is the iterator object which contains search results and the methods used to retrieve the instance.
The initial search operation finds all instances and caches the results as instance IDs on the client. As the iterator is called to fetch entries, the instances are cached on the client and returned to the user, one at a time.
This procedure is advantageous because less time and RAM are used to retrieve a large number of instances.
CCalInstanceIterator has these exported functions:
EXPORT_C ~CCalInstanceIterator() // The destructor for the instance iterator
EXPORT_C CCalInstance* NextL() // Fetches the next instance in the iterator. It returns ownership of instance and the iterator moves to the next instance in its results list.
EXPORT_C CCalInstance* PreviousL() // Fetches the previous instance in the iterator. It returns ownership of the instance and the iterator moves to the previous instance in its results list.
EXPORT_C TBool HasMore() const // Checks to see if there are any more results in the iterator to be returned by calling NextL.
EXPORT_C TInt Count() const // Returns the total number of instances found by the iterator.