--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/sendas/client/inc/rsendas.h Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,117 @@
+// 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 "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.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__