williamr@2: // Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: inline TMsvId TMsvEntry::Id() const williamr@2: /** Gets the value of the entry ID. williamr@2: williamr@2: @return The value of the entry ID */ williamr@2: { williamr@2: return iId; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetId(TMsvId aId) williamr@2: { williamr@2: iId = aId; williamr@2: } williamr@2: williamr@2: inline TMsvId TMsvEntry::Parent() const williamr@2: /** Gets the value of the parent ID. williamr@2: williamr@2: @return The value of the parent ID */ williamr@2: { williamr@2: return iParentId; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetParent(TMsvId aParentId) williamr@2: { williamr@2: iParentId = aParentId; williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Complete () const williamr@2: /** Gets the value of the message complete flag. williamr@2: williamr@2: Note that for email download without size limits, the complete flag will only williamr@2: be set to true once all the parts of the message (body text and attachments) williamr@2: have been downloaded. williamr@2: williamr@2: @return The value of the message complete flag */ williamr@2: { williamr@2: return !(iData&KMsvEntryNotCompleteFlag); williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetComplete(TBool aComplete) williamr@2: /** Sets the message complete flag. williamr@2: williamr@2: Note that for email download without size limits, the complete flag will only williamr@2: be set to true once all the parts of the message (body text and attachments) williamr@2: have been downloaded. williamr@2: williamr@2: @param aComplete Value for the message complete flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryNotCompleteFlag) | ((!aComplete)?KMsvEntryNotCompleteFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::New() const williamr@2: /** Gets the value of the new message flag. williamr@2: williamr@2: @return The value of the new message flag */ williamr@2: { williamr@2: return iData&KMsvEntryNewFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetNew(TBool aNew) williamr@2: /** Sets the message new flag. williamr@2: williamr@2: @param aNew Value for the message new flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryNewFlag) | (aNew?KMsvEntryNewFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Unread() const williamr@2: /** Gets the value of the message unread flag. williamr@2: williamr@2: @return The value of the message unread flag */ williamr@2: { williamr@2: return iData&KMsvEntryUnreadFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetUnread(TBool aUnread) williamr@2: /** Sets the message unread flag. williamr@2: williamr@2: @param aUnread Value for the message unread flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryUnreadFlag) | (aUnread?KMsvEntryUnreadFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Failed() const williamr@2: /** Gets the value of the message send failed flag. williamr@2: williamr@2: @return The value of the message send failed flag */ williamr@2: { williamr@2: return iData&KMsvEntryFailedFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetFailed(TBool aFailed) williamr@2: /** Sets the message send failed flag. williamr@2: williamr@2: @param aFailed Value for the message send failed flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryFailedFlag) | (aFailed?KMsvEntryFailedFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Operation() const williamr@2: /** Gets the value of the disconnected operation queued flag. williamr@2: williamr@2: @return The value of the disconnected operation queued flag */ williamr@2: { williamr@2: return iData&KMsvEntryOperationFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetOperation(TBool aOperation) williamr@2: /** Sets the disconnected operation queued flag. williamr@2: williamr@2: @param aOperation Value for the disconnected operation queued flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryOperationFlag) | (aOperation?KMsvEntryOperationFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Owner() const williamr@2: /** Gets the value of the owner flag. williamr@2: williamr@2: @return The value of the owner flag */ williamr@2: { williamr@2: return iData&KMsvEntryOwnerFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetOwner(TBool aOwner) williamr@2: { williamr@2: iData = (iData & ~KMsvEntryOwnerFlag) | (aOwner?KMsvEntryOwnerFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Attachment() const williamr@2: /** Gets the value of the attachment flag. williamr@2: williamr@2: @return The value of the attachment flag */ williamr@2: { williamr@2: return iData&KMsvEntryAttachmentFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetAttachment(TBool aAttachmentFlag) williamr@2: /** Sets the attachment flag. williamr@2: williamr@2: @param aAttachmentFlag Value for the attachment flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryAttachmentFlag) | (aAttachmentFlag?KMsvEntryAttachmentFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Visible() const williamr@2: /** Gets the value of the entry visible flag. williamr@2: williamr@2: @return The value of the entry visible flag */ williamr@2: { williamr@2: return !((iData&KMsvEntryInvisibleFlag) || (iData&KMsvEntryPendingDeleteFlag)); williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetVisible(TBool aVisble) williamr@2: /** Sets the entry visible flag. williamr@2: williamr@2: @param aVisble Value for the entry visible flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryInvisibleFlag) | ((!aVisble)?KMsvEntryInvisibleFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::MultipleRecipients() const williamr@2: /** Gets the value of the multiple recipients flag. williamr@2: williamr@2: @return The value of the multiple recipients flag */ williamr@2: { williamr@2: return iData&KMsvEntryMultipleRecipientFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetMultipleRecipients(TBool aMultipleRecipient) williamr@2: /** Sets the multiple recipients flag. williamr@2: williamr@2: @param aMultipleRecipient Value for the multiple recipients flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryMultipleRecipientFlag) | (aMultipleRecipient?KMsvEntryMultipleRecipientFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::ReadOnly() const williamr@2: /** Gets the value of the read-only flag. williamr@2: williamr@2: @return The value of the read-only flag */ williamr@2: { williamr@2: return iData&KMsvEntryReadOnlyFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetReadOnly(TBool aReadOnly) williamr@2: /** Sets the read-only flag. williamr@2: williamr@2: @param aReadOnly Value for the read-only flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryReadOnlyFlag) | (aReadOnly?KMsvEntryReadOnlyFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Deleted() const williamr@2: /** Gets the value of the deleted flag. williamr@2: williamr@2: @return The value of the deleted flag */ williamr@2: { williamr@2: return iData&KMsvEntryDeletedFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetDeleted(TBool aDeletedFlag) williamr@2: { williamr@2: iData = (iData & ~KMsvEntryDeletedFlag) | (aDeletedFlag?KMsvEntryDeletedFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::StandardFolder() const williamr@2: /** Gets the value of the standard folder flag. williamr@2: williamr@2: @return The value of the standard folder flag */ williamr@2: { williamr@2: return iData&KMsvEntryStandardFolderFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetStandardFolder(TBool aStandardFolder) williamr@2: { williamr@2: iData = (iData & ~KMsvEntryStandardFolderFlag) | (aStandardFolder?KMsvEntryStandardFolderFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Connected() const williamr@2: /** Gets the value of the remote server connection flag. williamr@2: williamr@2: @return The value of the remote server connection flag */ williamr@2: { williamr@2: return iData&KMsvEntryConnectedFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetConnected(TBool aConnected) williamr@2: /** Sets the remote server connection flag. williamr@2: williamr@2: @param aConnected Value for the remote server connection flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryConnectedFlag) | (aConnected?KMsvEntryConnectedFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::InPreparation() const williamr@2: /** Gets the value of the in preparation flag. williamr@2: williamr@2: @return The value of the in preparation flag */ williamr@2: { williamr@2: return iData&KMsvEntryInPreparationFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetInPreparation(TBool aInPreparation) williamr@2: /** Sets the in-preparation flag. williamr@2: williamr@2: @param aInPreparation Value for the in-preparation flag */ williamr@2: { williamr@2: iData = (iData & ~KMsvEntryInPreparationFlag) | (aInPreparation?KMsvEntryInPreparationFlag:KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TInt TMsvEntry::PcSyncCount() const williamr@2: /** Gets the value of the PC synchronisation field. williamr@2: williamr@2: @return The value of the PC synchronisation field */ williamr@2: { williamr@2: return iPcSyncCount; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::IncPcSyncCount() williamr@2: /** Increments the PC synchronisation field. */ williamr@2: { williamr@2: iPcSyncCount++; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::DecPcSyncCount() williamr@2: /** Decrements the PC synchronisation field. */ williamr@2: { williamr@2: iPcSyncCount--; williamr@2: } williamr@2: williamr@2: inline TUint TMsvEntry::PersistedFlags() const williamr@2: { williamr@2: return iData&KMsvEntryPersistedFlags; williamr@2: } williamr@2: williamr@2: inline TUint TMsvEntry::TemporaryFlags() const williamr@2: { williamr@2: return iData&KMsvEntryTemporaryFlags; williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::OffPeak() const williamr@2: /** Gets the off-peak flag. williamr@2: williamr@2: @return The value of the off-peak flag */ williamr@2: { williamr@2: return iData & KMsvOffPeakFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetOffPeak(TBool aOffPeak) williamr@2: /** Sets the off-peak flag. williamr@2: williamr@2: @param aOffPeak Value for off-peak flag. */ williamr@2: { williamr@2: iData = (iData & ~KMsvOffPeakFlag) | (aOffPeak ? KMsvOffPeakFlag : KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Scheduled() const williamr@2: /** Gets the scheduled flag. williamr@2: williamr@2: @return The value of the scheduled flag */ williamr@2: { williamr@2: return iData & KMsvScheduledFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetScheduled(TBool aScheduled) williamr@2: /** Sets the scheduled flag. williamr@2: williamr@2: @param aScheduled Value for the scheduled flag. */ williamr@2: { williamr@2: iData = (iData & ~KMsvScheduledFlag) | (aScheduled ? KMsvScheduledFlag : KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TUint TMsvEntry::SendingState() const williamr@2: /** Gets the sending state. williamr@2: williamr@2: @return The sending state */ williamr@2: { williamr@2: return (iData & KMsvSendingStateFlags) >> KMsvSendingStateShift; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetSendingState(TUint aSendingState) williamr@2: /** Sets the sending state. williamr@2: williamr@2: @param aSendingState The sending state. This must be a value between 0x00 williamr@2: and KMsvSendStateMax. */ williamr@2: { williamr@2: __ASSERT_DEBUG(aSendingState <= KMsvSendStateMax, User::Invariant()); williamr@2: iData = iData & ~KMsvSendingStateFlags | aSendingState << KMsvSendingStateShift; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetPendingDelete(TBool aPendingDelete) williamr@2: { williamr@2: iData = (iData & ~KMsvEntryPendingDeleteFlag) | (aPendingDelete ? KMsvEntryPendingDeleteFlag : KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::PendingDelete() const williamr@2: { williamr@2: return iData & KMsvEntryPendingDeleteFlag; williamr@2: } williamr@2: williamr@2: williamr@2: inline void TMsvEntry::SetDeleteProtected(TBool aDeleteProtected) williamr@2: { williamr@2: /** temporary variable used to mask the anonymous global enum. */ williamr@2: TInt temp = KMsvEntryDeleteProtected; williamr@2: /** Sets the delete protected state */ williamr@2: iMtmData1 = (iMtmData1 & ~KMsvEntryDeleteProtected ) | (aDeleteProtected ? temp : KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::DeleteProtected() const williamr@2: { williamr@2: /** returns the delete protected state */ williamr@2: return iMtmData1 & KMsvEntryDeleteProtected; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetForwarded(TBool aForwarded) williamr@2: { williamr@2: /** temporary variable used to mask the anonymous global enum. */ williamr@2: TInt temp = KMsvEntryForwarded ; williamr@2: /** Sets the forwarded state */ williamr@2: iMtmData1 = (iMtmData1 & ~KMsvEntryForwarded) | (aForwarded ? temp : KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::Forwarded() const williamr@2: { williamr@2: /** returns the forwarded state */ williamr@2: return iMtmData1 & KMsvEntryForwarded; williamr@2: } williamr@2: williamr@2: inline void TMsvEntry::SetLocallyDeleted(TBool aLocallyDeleted) williamr@2: { williamr@2: /** temporary variable used to mask the anonymous global enum. */ williamr@2: TInt temp = KMsvEntryLocallyDeleted ; williamr@2: /** Sets the locally deleted state */ williamr@2: iMtmData1 = (iMtmData1 & ~KMsvEntryLocallyDeleted) | (aLocallyDeleted ? temp : KMsvEntryClearFlag); williamr@2: } williamr@2: williamr@2: inline TBool TMsvEntry::LocallyDeleted() const williamr@2: { williamr@2: /** returns the locally deleted state */ williamr@2: return iMtmData1 & KMsvEntryLocallyDeleted; williamr@2: } williamr@2: williamr@2: //********************************** williamr@2: // TMsvSelectionOrdering williamr@2: //********************************** williamr@2: williamr@2: inline TBool TMsvSelectionOrdering::GroupByType() const williamr@2: /** Gets the group-by-entry-type flag. williamr@2: williamr@2: @return Group-by-entry-type flag */ williamr@2: { williamr@2: return iGrouping&KMsvGroupByType; williamr@2: } williamr@2: williamr@2: inline TBool TMsvSelectionOrdering::GroupStandardFolders() const williamr@2: /** Gets the group-by-standard-folders flag. williamr@2: williamr@2: @return Group-by-standard-folders flag */ williamr@2: { williamr@2: return iGrouping&KMsvStandardFolders; williamr@2: } williamr@2: williamr@2: inline TBool TMsvSelectionOrdering::GroupByPriority() const williamr@2: /** Gets the group-by-priority flag. williamr@2: williamr@2: @return Group-by-priority flag */ williamr@2: { williamr@2: return iGrouping&KMsvGroupByPriority; williamr@2: } williamr@2: williamr@2: inline TBool TMsvSelectionOrdering::GroupByMtm() const williamr@2: /** Gets the group-by-MTM flag. williamr@2: williamr@2: @return Group-by-MTM flag */ williamr@2: { williamr@2: return iGrouping&KMsvGroupByMtm; williamr@2: } williamr@2: williamr@2: inline TBool TMsvSelectionOrdering::ShowInvisibleEntries() const williamr@2: /** Gets the show-invisible-entries flag. Entries whose entry visible flag index williamr@2: field is not set are included in the ordered list only if this is set. williamr@2: williamr@2: @return Show-invisible-entries flag */ williamr@2: { williamr@2: return iGrouping&KMsvInvisibleFlag; williamr@2: } williamr@2: williamr@2: inline void TMsvSelectionOrdering::SetGroupByType(TBool aFlag) williamr@2: { williamr@2: iGrouping = (iGrouping & ~KMsvGroupByStandardFolders) | ((aFlag)?KMsvGroupByType:0); williamr@2: } williamr@2: williamr@2: inline void TMsvSelectionOrdering::SetGroupStandardFolders(TBool aFlag) williamr@2: { williamr@2: iGrouping = (iGrouping & ~KMsvStandardFolders) | ((aFlag)?KMsvGroupByStandardFolders:0); williamr@2: } williamr@2: williamr@2: inline void TMsvSelectionOrdering::SetGroupByPriority(TBool aFlag) williamr@2: { williamr@2: iGrouping = (iGrouping & ~KMsvGroupByPriority) | ((aFlag)?KMsvGroupByPriority:0); williamr@2: } williamr@2: williamr@2: inline void TMsvSelectionOrdering::SetGroupByMtm(TBool aFlag) williamr@2: { williamr@2: iGrouping = (iGrouping & ~KMsvGroupByMtm) | ((aFlag)?KMsvGroupByMtm:0); williamr@2: } williamr@2: williamr@2: inline void TMsvSelectionOrdering::SetShowInvisibleEntries(TBool aFlag) williamr@2: { williamr@2: iGrouping = (iGrouping & ~KMsvInvisibleFlag) | ((aFlag)?KMsvInvisibleFlag:0); williamr@2: } williamr@2: williamr@2: inline TMsvSorting TMsvSelectionOrdering::Sorting() const williamr@2: /** Gets the sorting order of entries within groups. williamr@2: williamr@2: @return Sorting order. */ williamr@2: { williamr@2: return iSortType; williamr@2: } williamr@2: williamr@2: inline void TMsvSelectionOrdering::SetSorting(TMsvSorting aSortType) williamr@2: { williamr@2: iSortType=aSortType; williamr@2: } williamr@2: williamr@2: inline TBool TMsvSelectionOrdering::GroupingOn() const williamr@2: /** Tests whether any grouping option has been set. williamr@2: williamr@2: @return ETrue if one or more grouping options have been set, else EFalse */ williamr@2: { williamr@2: return iGrouping&KMsvAllGroupingFlags; williamr@2: } williamr@2: williamr@2: //********************************** williamr@2: // CMsvEntryFilter williamr@2: //********************************** williamr@2: williamr@2: inline TMsvId CMsvEntryFilter::Service() const williamr@2: /** Gets the service ID set for the filter. williamr@2: williamr@2: @return Service ID set for the filter */ williamr@2: { williamr@2: return iServiceId; williamr@2: } williamr@2: williamr@2: inline void CMsvEntryFilter::SetService(TMsvId aServiceId) williamr@2: /** Sets the service ID for the filter. williamr@2: williamr@2: @param aServiceId Service ID for the filter */ williamr@2: { williamr@2: iServiceId = aServiceId; williamr@2: } williamr@2: williamr@2: inline TUid CMsvEntryFilter::Mtm() const williamr@2: /** Gets the MTM UID set for the filter. williamr@2: williamr@2: @return MTM UID set for the filter */ williamr@2: { williamr@2: return iMtm; williamr@2: } williamr@2: williamr@2: inline void CMsvEntryFilter::SetMtm(TUid aMtm) williamr@2: /** Sets the MTM UID for the filter. williamr@2: williamr@2: @param aMtm MTM UID for the filter */ williamr@2: { williamr@2: iMtm = aMtm; williamr@2: } williamr@2: williamr@2: inline TUid CMsvEntryFilter::Type() const williamr@2: /** Gets the entry type set for the filter. williamr@2: williamr@2: @return Entry type set for the filter */ williamr@2: { williamr@2: return iType; williamr@2: } williamr@2: williamr@2: inline void CMsvEntryFilter::SetType(TUid aType) williamr@2: /** Sets the entry type for the filter. williamr@2: williamr@2: @param aType Entry type for the filter */ williamr@2: { williamr@2: iType = aType; williamr@2: } williamr@2: williamr@2: inline const TTime& CMsvEntryFilter::LastChangeDate() const williamr@2: /** Gets the last change date set for the filter. williamr@2: williamr@2: @return Last change date set for the filter */ williamr@2: { williamr@2: return iLastChange; williamr@2: } williamr@2: williamr@2: inline void CMsvEntryFilter::SetLastChangeDate(const TTime& aLastChange) williamr@2: /** Sets the last date change for the filter. williamr@2: williamr@2: This is used to retrieve entries that have changed since a particular date. williamr@2: williamr@2: @param aLastChange Last date change for the filter, specified in Universal williamr@2: Time (GMT) */ williamr@2: { williamr@2: iLastChange = aLastChange; williamr@2: } williamr@2: williamr@2: inline const TMsvSelectionOrdering& CMsvEntryFilter::Order() const williamr@2: /** Gets the selection ordering set for the filter. williamr@2: williamr@2: @return Selection ordering set for the filter */ williamr@2: { williamr@2: return iOrdering; williamr@2: } williamr@2: williamr@2: inline void CMsvEntryFilter::SetOrder(const TMsvSelectionOrdering& aOrder) williamr@2: /** Sets the sort ordering for the filter. williamr@2: williamr@2: @param aOrder Selection ordering for the filter */ williamr@2: { williamr@2: iOrdering = aOrder; williamr@2: } williamr@2: williamr@2: inline TUid CMsvEntryFilter::SortMtm() const williamr@2: /** Gets the sorting by MTM for the filter. williamr@2: williamr@2: @return Sorting by MTM for the filter */ williamr@2: { williamr@2: return iSortMtm; williamr@2: } williamr@2: williamr@2: inline void CMsvEntryFilter::SetSortMtm(TUid aSortMtm) williamr@2: /** Sets the sorting by MTM for the filter. williamr@2: williamr@2: @param aSortMtm Sorting by MTM for the filter */ williamr@2: { williamr@2: iSortMtm = aSortMtm; williamr@2: }