Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
// 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 <e32base.h>
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__