diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/rsendas.h --- a/epoc32/include/rsendas.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/rsendas.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,117 @@ -rsendas.h +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// 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 +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __RSENDAS_H__ +#define __RSENDAS_H__ + +#include + +class CSendAsMessageTypes; +class CSendAsAccounts; + +/** +The default number of message slots available to a session. This determines the +number of outstanding requests the client may have with the server at any one +time. +*/ +const TInt KSendAsDefaultMessageSlots = 4; + +/** +Encapsulates a session with the SendAs Server. + +This class allows a user to determine the message types available to the SendAs +server and also provides functionality for clients to filter this list to find +the UIDs required to create messages. + +@publishedAll +@released +*/ +class RSendAs : public RSessionBase + { +public: + +/** +Defines the condition-checking of message capabilities. These are progressively +added to refine the list of available MTMs. +*/ + enum TSendAsConditionType + { + /** + No MTMs are removed as a result of applying this condition to the + filtering. + */ + ESendAsNoCondition, + /** + Only MTMs whose capabilities match the given value will remain as a + result of applying this condition to the filtering. + */ + ESendAsEquals, + /** + Only MTMs whose capabilities do not match the given value will remain + as a result of applying this condition to the filtering. + */ + ESendAsNotEquals, + /** + Only MTMs whose capabilities greater than the given value will remain + as a result of applying this condition to the filtering. + */ + ESendAsGreaterThan, + /** + Only MTMs whose capabilities less than the given value will remain as a + result of applying this condition to the filtering. + */ + ESendAsLessThan, + /** + Only MTMs whose capabilities result non-zero value when bitwise ANDed + with the given value will remain as a result of applying this condition + to the filtering. + */ + ESendAsBitwiseAnd, + /** + Only MTMs whose capabilities result non-zero value when bitwise ORed + with the given value will remain as a result of applying this condition + to the filtering. + */ + ESendAsBitwiseOr, + /** + Only MTMs whose capabilities result non-zero value when bitwise NANDed + with the given value will remain as a result of applying this condition + to the filtering. + */ + ESendAsBitwiseNand, + /** + Only MTMs whose capabilities result non-zero value when bitwise NORed + with the given value will remain as a result of applying this condition + to the filtering. + */ + ESendAsBitwiseNor + }; + +public: + IMPORT_C TInt Connect(); + IMPORT_C TInt Connect(TInt aMessageSlots); + + IMPORT_C void FilteredMessageTypesL(CSendAsMessageTypes& aMessageTypeInfo); + IMPORT_C TInt FilterAgainstCapability(TUid aMessageCapability); + IMPORT_C TInt FilterAgainstCapability(TUid aMessageCapability, TInt aValue, TSendAsConditionType aConditionType); + IMPORT_C TInt ResetMessageFilter(); + + IMPORT_C void AvailableAccountsL(TUid aMessageType, CSendAsAccounts& aAccounts); + +private: + TAny* iAny; // Future proofing. + }; + +#endif // __RSENDAS_H__