cmmanager/cmmgr/cmmapi/inc/cmmanagerapi.h
changeset 20 9c97ad6591ae
child 27 489cf6208544
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/cmmgr/cmmapi/inc/cmmanagerapi.h	Mon May 03 12:53:07 2010 +0300
@@ -0,0 +1,159 @@
+/*
+* Copyright (c) 2009-2010 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:
+* Client side IPC handling for Connection Method Manager server.
+*
+*/
+
+
+#ifndef CMMANAGERAPI_H
+#define CMMANAGERAPI_H
+
+#include <e32std.h>
+#include <cmdefconnvalues.h>
+#include <cmgenconnsettings.h>
+
+class CCmDestinationWrapper;
+class CCmConnectionMethodWrapper;
+class TBearerPriority;
+class TCmmIpcStructGetConnMethods;
+class TCmmIpcStructMoveConnMethod;
+
+
+NONSHARABLE_CLASS( RCmManagerApi ) : public RSessionBase
+    {
+public:
+    /**
+     * Constructor.
+     */
+    RCmManagerApi();
+
+public:
+    /**
+     * Opens a connection (session) to the CMM server.
+     * @return KErrNone if the connection succeeds, a system-wide error code
+     * if not.
+     */
+    TInt Connect();
+
+    /**
+     * Closes the connection (session).
+     */
+    void Close();
+
+    TInt StoreDestinationWrapper(
+            CCmDestinationWrapper* aDestinationWrapper );
+    TInt RemoveDestinationWrapper(
+            CCmDestinationWrapper* aDestinationWrapper );
+    CCmDestinationWrapper* GetDestinationWrapperL( const TInt& aHandle );
+
+    TInt StoreConnMethodWrapper(
+            CCmConnectionMethodWrapper* aConnMethodWrapper );
+    TInt RemoveConnMethodWrapper(
+            CCmConnectionMethodWrapper* aConnMethodWrapper );
+    CCmConnectionMethodWrapper* GetConnMethodWrapperL( const TInt& aHandle );
+
+    TInt GetBearerInfoInt(
+            const TUint32 aBearerType,
+            const TUint32 aAttribute,
+            TUint32& aValue );
+    TInt GetBearerInfoBool(
+            const TUint32 aBearerType,
+            const TUint32 aAttribute,
+            TBool& aValue );
+    TInt GetBearerInfoString(
+            const TUint32 aBearerType,
+            const TUint32 aAttribute,
+            HBufC* aBuffer );
+    TInt GetBearerInfoString8(
+            const TUint32 aBearerType,
+            const TUint32 aAttribute,
+            HBufC8* aBuffer8 );
+
+    TInt GetConnectionMethodInfoInt(
+            const TUint32 aIapId,
+            const TUint32 aAttribute,
+            TUint32& aValue );
+    TInt GetConnectionMethodInfoBool(
+            const TUint32 aIapId,
+            const TUint32 aAttribute,
+            TBool& aValue );
+    TInt GetConnectionMethodInfoString(
+            const TUint32 aIapId,
+            const TUint32 aAttribute,
+            HBufC* aBuffer );
+    TInt GetConnectionMethodInfoString8(
+            const TUint32 aIapId,
+            const TUint32 aAttribute,
+            HBufC8* aBuffer8 );
+
+    void GetConnMethodsL(
+            const TCmmIpcStructGetConnMethods& aParameters,
+            RArray<TUint32>& aCmArray );
+    void GetAllDestinationsL(
+            RArray<TUint32>& aDestArray );
+
+    void GetBearerPriorityArrayL( RArray<TBearerPriority>& aArray );
+    void SetBearerPriorityArrayL( const RArray<TBearerPriority>& aArray );
+
+    void GetSupportedBearersL( RArray<TUint32>& aArray );
+
+    TInt GetEasyWlanId( TUint32& aValue );
+
+    TInt ReadDefaultConnection(
+            TCmDefConnValue& aDefConnSetting );
+    TInt WriteDefaultConnection(
+            const TCmDefConnValue& aDefConnSetting );
+
+    TInt ReadGeneralConnectionSettings(
+            TCmGenConnSettings& aGenConnSettings );
+    TInt WriteGeneralConnectionSettings(
+            const TCmGenConnSettings& aGenConnSettings );
+
+    TInt CopyConnectionMethod(
+            const TInt aTargetDestHandle,
+            const TInt aConnMethodHandle,
+            TInt& aIndex );
+    TInt MoveConnectionMethod(
+            TCmmIpcStructMoveConnMethod& aPkgData );
+    TInt RemoveConnectionMethod(
+            const TInt aTargetDestHandle,
+            const TInt aConnMethodHandle );
+    TInt RemoveAllReferences(
+            const TInt aConnMethodHandle );
+
+private:
+    // Array of destination handles opened through this session.
+    // Does not have ownership of contained objects.
+    RPointerArray<CCmDestinationWrapper> iDestinations;
+
+    // Array of connection method handles opened through this session.
+    // Does not have ownership of contained objects.
+    RPointerArray<CCmConnectionMethodWrapper> iConnMethods;
+
+    // True when a session is established to the server.
+    TBool iConnected;
+
+    // True when using smaller buffer for ConnectionMethodL(array)-query.
+    // Bigger buffer is taken into use if needed.
+    TBool iSmallBufsForDestinations;
+
+    // True when using smaller buffer for AllDestinationsL(array)-query.
+    // Bigger buffer is taken into use if needed.
+    TBool iSmallBufsForConnMethods;
+    };
+
+#endif // CMMANAGERAPI_H
+
+// End of file