diff -r 000000000000 -r 094583676ce7 inc/PEngWVServices2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/PEngWVServices2.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,409 @@ +/* +* Copyright (c) 2004 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: Wireless Village CSP features. +* +*/ + +#ifndef __PENGWVSERVICES2_H +#define __PENGWVSERVICES2_H + +// INCLUDES +#include + + +// CONSTANTS + +/** + * NWSessionSlot option name. + * Option level: KPEngNWSessionSlotTransportQuery. + * + * Used to query TPEngWVCSPServicesTree2 from NWSessionSlot. + * Supported services can be asked only after succesful login, + * when the NWSessionSlot is connected to network. If the slot + * isn't connected to network, CPEngNWSessionSlot2::GetOption() + * returns KErrNotFound. + * + * Usage: + * CPEngNWSessionSlot2* nwSlot = ... //Open NWSession + * + * TPEngWVCspServicesTree2 cspTree; + * TPckg cspTreePtr( cspTree ); + * User::LeaveIfError( nwSlot->GetOption( KPEngWVCspServicesTree2, + * KPEngNWSessionSlotTransportQuery, + * cspTreePtr ) ); + * + * if( !cspTree.iPresenceFeat.FeatureSupported() ) + * { + * } + * + * @since 3.0 + */ +const TUint KPEngWVCspServicesTree2 = 0x50001; + + + + + +// CLASS DECLARATION + + +/** + * WV CSP Feature subtree. + * Function and SubFunction constants + * are in the end of this file. + * + * @since 3.0 + */ +class TPEngWVCspFeature2 + { + public: // Constructor + + /** + * C++ default constructor + */ + inline TPEngWVCspFeature2(); + + + public: // Accessor helpers + + /** + * Checks is the feature supported or not. + * + * @return ETrue if network server supports all those functions + * that were requested in capability negotiation. + * Else EFalse. + */ + inline TBool FeatureSupported() const; + + + /** + * Function accessor. + * Checks is the given function supported or not. + * + * @param aFunction Function to check. See function constants + * KPEngFFServiceFunction, KPEngFFSearchFunction etc below. + * @return ETrue if network server supports all those + * sub-functions that were requested in capability + * negotiation. Else EFalse. + */ + inline TBool FunctionSupported( TInt aFunction ) const; + + + /** + * Sub-function accessor. + * Checks is the given sub-function supported or not. + * + * @param aSubFunction Sub-function to check. See sub-function constants + * KPEngFFSubFuncSRCH, KPEngWVSubFuncSTSRC etc below. + * @return ETrue if network server supports given sub-function. + * Else EFalse. + */ + inline TBool SubFunctionSupported( TInt aSubFunction ) const; + + + + public: // Data + + //OWN: Is feature supported? + TBool iSupported; + + //OWN: Supported WV functions + TInt32 iFunctions; + + //OWN: Supported WV SubFunctions + TInt32 iSubFunctions; + + + private: // Reserved extensions space + + //OWN: Reserved extensions space + TUint8 iReserved[ 8 ]; + }; + + + + +/** + * WV CSP Services Tree. + * + * Holds information about currently supported + * Wireless Village CSP services. + * + * @since 3.0 + */ +class TPEngWVCspServicesTree2 + { + public: // Constructors + + /** + * C++ default constructor. + */ + inline TPEngWVCspServicesTree2(); + + + + public: // Data + + //OWN: Wireless Village Fundamental Features + TPEngWVCspFeature2 iFundamentalFeat; + + //OWN: Wireless Village Presence Features + TPEngWVCspFeature2 iPresenceFeat; + + //OWN: Wireless Village IM Features + TPEngWVCspFeature2 iIMFeat; + + //OWN: Wireless Village Group Features + TPEngWVCspFeature2 iGroupFeat; + + + private: // Reserved extensions space + + //OWN: Reserved extensions space + TUint8 iReserved[4 * sizeof( TPEngWVCspFeature2 ) + 8]; + }; + + + + +// CONSTANTS + +/** + * Fundamental Functions subtree. + * @since 3.0 + */ +const TInt KPEngFFServiceFunction = 0x0001; +const TInt KPEngFFSearchFunction = 0x0002; +// Old name +const TInt KPEngWVSearchFunction = 0x0002; +const TInt KPEngFFInviteFunction = 0x0004; + + +// SERVICE FUNCTIONS +// GETSPI: Support for Get Service Provider Info transaction +const TInt KPEngFFSubFuncGETSPI = 0x0001; + +// SEARCHE FUNCTIONS + +// SRCH: Support for searching based on various group/user properties +const TInt KPEngFFSubFuncSRCH = 0x0010; + +// STSRC: Support for stop search transaction +const TInt KPEngFFSubFuncSTSRC = 0x0020; +// Old names +const TInt KPEngWVSubFuncSRCH = 0x0010; +const TInt KPEngWVSubFuncSTSRC = 0x0020; + + +// INVITE FUNCTIONS + +// INVIT: Support for invitation transaction +const TInt KPEngFFSubFuncINVIT = 0x0100; +// CAINV: Support for cancel invitation transaction +const TInt KPEngFFSubFuncCAINV = 0x0200; + + + +/** + * Presence Functions subtree. + * @since 3.0 + */ +const TInt KPEngWVContListFunction = 0x0001; +const TInt KPEngWVPresAuthFunction = 0x0002; +const TInt KPEngWVPresDelivFunction = 0x0004; +const TInt KPEngWVAttrListFunction = 0x0008; + + +//CONTLIST FUNCTIONS + +// GCLI: Support for get list of contact lists (IDs) transaction +const TInt KPEngWVSubFuncGCLI = 0x0001; +// CCLI: Support for create contact list transaction +const TInt KPEngWVSubFuncCCLI = 0x0002; +// DCLI: Support for delete contact list transaction +const TInt KPEngWVSubFuncDCLI = 0x0004; +// MCLS: Support for manage contact list transaction +const TInt KPEngWVSubFuncMCLS = 0x0008; + + +//PRESAUTH FUNCTIONS + +// GETWL: Support for get watcher list transaction +const TInt KPEngWVSubFuncGETWL = 0x0010; +// REACT: Support for reactive presence authorization request +const TInt KPEngWVSubFuncREACT = 0x0020; +// CAAUT: Support for cancel presence authorization transaction +const TInt KPEngWVSubFuncCAAUT = 0x0040; +// GETAUT: Support for get reactive authorization status transaction +const TInt KPEngWVSubFuncGETAUT = 0x0080; + + +//PRESDELIV FUNCTIONS + +// GETPR: Support for get presence transaction +const TInt KPEngWVSubFuncGETPR = 0x0100; +// UPDPR: Support for update presence transaction +const TInt KPEngWVSubFuncUPDPR = 0x0200; + + +//ATTRLIST FUNCTIONS + +// CALI: Support for create attribute list transaction +const TInt KPEngWVSubFuncCALI = 0x1000; +// DALI: Support for delete attribute list transaction +const TInt KPEngWVSubFuncDALI = 0x2000; +// GALS: Support for get attribute list transaction +const TInt KPEngWVSubFuncGALS = 0x4000; + + + + +/** + * IM Functions subtree. + * @since 3.0 + */ +const TInt KPEngIMSendFunctions = 0x0001; +const TInt KPEngIMReceiveFunctions = 0x0002; +const TInt KPEngIMAuthorFunctions = 0x0004; + +//IM SEND FUNCTIONS + +// MDELIV: Support for delivery status report transaction +const TInt KPEngIMSubFuncMDELIV = 0x0001; +// FWMSG: Support for forward message transaction +const TInt KPEngIMSubFuncFWMSG = 0x0002; + + +//IM RECEIVE FUNCTIONS + +// SETD: Support for setting delivery method +const TInt KPEngIMSubFuncSETD = 0x0010; +// GETLM: Support for get list of messages transaction +const TInt KPEngIMSubFuncGETLM = 0x0020; +// GETM: Support for get message transaction +const TInt KPEngIMSubFuncGETM = 0x0040; +// REJCM: Support for reject message transaction +const TInt KPEngIMSubFuncREJCM = 0x0080; +// NOTIF: Support for message notification transaction +const TInt KPEngIMSubFuncNOTIF = 0x0100; +// NEWM: Support for new message transaction +const TInt KPEngIMSubFuncNEWM = 0x0200; + +//IM AUTHORIZATION FUNCTIONS + +// GLBLU: Support for get list of blocked entities transaction +const TInt KPEngIMSubFuncGLBLU = 0x1000; +// BLENT: Support for block entity transaction +const TInt KPEngIMSubFuncBLENT = 0x2000; + + + +/** + * Group Functions subtree. + * @since 3.0 + */ +const TInt KPEngGRManageFunctions = 0x0001; +const TInt KPEngGRUseFunctions = 0x0002; +const TInt KPEngGRAuthorFunctions = 0x0004; + +//GROUP MANAGE FUNCTIONS + +// CREAG: Support for group creation transaction +const TInt KPEngGRSubFuncCREAG = 0x0001; +// DELGR: Support for group deletion transaction +const TInt KPEngGRSubFuncDELGR = 0x0002; +// GETGP: Support for get group properties transaction +const TInt KPEngGRSubFuncGETGP = 0x0004; +// SETGP: Support for set group properties transaction +const TInt KPEngGRSubFuncSETGP = 0x0008; + +//GROUP USE FUNCTIONS + +// SUBGCN: Support for subscribe group notice transaction +const TInt KPEngGRSubFuncSUBGCN = 0x0010; +// GRCHN: Support for group change notification transaction +const TInt KPEngGRSubFuncGRCHN = 0x0020; + +//GROUP AUTHORIZATION FUNCTIONS + +// GETGM: Support for get group members transaction +const TInt KPEngGRSubFuncGETGM = 0x0100; +// ADDGM: Support for add group members transaction +const TInt KPEngGRSubFuncADDGM = 0x0200; +// RMVGM: Support for remove group members transaction +const TInt KPEngGRSubFuncRMVGM = 0x0400; +// MBRAC: Support for member access rights transaction +const TInt KPEngGRSubFuncMBRAC = 0x0800; +// REJEC: Support for reject user(s) from group transaction +const TInt KPEngGRSubFuncREJEC = 0x1000; + + +// Inline methods +// =================== TPEngWVCSPFeature2 MEMBER FUNCTIONS =================== + +// C++ default constructor can NOT contain any code, that +// might leave. +// +inline TPEngWVCspFeature2::TPEngWVCspFeature2() + { + Mem::FillZ( this, sizeof( TPEngWVCspFeature2 ) ); + } + + +// ----------------------------------------------------------------------------- +// TPEngWVCspFeature2::FeatureSupported() +// ----------------------------------------------------------------------------- +// +inline TBool TPEngWVCspFeature2::FeatureSupported() const + { + return iSupported; + } + +// ----------------------------------------------------------------------------- +// TPEngWVCspFeature2::FunctionSupported() +// ----------------------------------------------------------------------------- +// +inline TBool TPEngWVCspFeature2::FunctionSupported( TInt aFunction ) const + { + return ( iFunctions & aFunction ? ETrue : EFalse ); + } + +// ----------------------------------------------------------------------------- +// TPEngWVCspFeature2::SubFunctionSupported() +// ----------------------------------------------------------------------------- +// +inline TBool TPEngWVCspFeature2::SubFunctionSupported( TInt aSubFunction ) const + { + return ( iSubFunctions & aSubFunction ? ETrue : EFalse ); + } + + + +// ================= TPEngWVCspServicesTree2 MEMBER FUNCTIONS ================= + +// C++ default constructor can NOT contain any code, that +// might leave. +// +inline TPEngWVCspServicesTree2::TPEngWVCspServicesTree2() + { + Mem::FillZ( this, sizeof( TPEngWVCspServicesTree2 ) ); + } + + +#endif //__PENGWVSERVICES2_H + +//End of file + + +