cmmanager/connection_settings_shim/src/cmconnectionmethod_shim_s60.cpp
changeset 20 9c97ad6591ae
child 40 c5b848e6c7d1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmmanager/connection_settings_shim/src/cmconnectionmethod_shim_s60.cpp	Mon May 03 12:53:07 2010 +0300
@@ -0,0 +1,285 @@
+/*
+ * Copyright (c) 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:  
+ * Private implementation of Wrapper for CM Manager Symbian interface.
+ */
+
+// System includes
+
+#include <utf.h>
+
+// User includes
+
+#include "cmconnectionmethod_shim_s60_p.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmconnectionmethod_shim_s60Traces.h"
+#endif
+
+
+/*!
+    \class CmConnectionMethodShimPrivate
+    \brief Private implementation class for CM Manager Connection Method Shim.
+
+    Wrapper for CM Manager Symbian interface. Symbian leaves are converted to
+    standard C++ exceptions.
+    
+    Wrapper functions are identical to those in CmConnectionMethodShim class,
+    so refer to cmconnectionmethod_shim.h for descriptions. Private functions
+    in this class are just leaving versions of the same wrapper functions.
+*/
+
+// External function prototypes
+
+// Local constants
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+ *  Constructor.
+ *  
+ *  @param[in] cm CM Manager connection method object.
+ */
+
+CmConnectionMethodShimPrivate::CmConnectionMethodShimPrivate(
+    RCmConnectionMethod &cm) :
+    iCm(cm)
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_ENTRY);
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_EXIT);
+}
+
+/*!
+ *  Destructor.
+ */
+
+CmConnectionMethodShimPrivate::~CmConnectionMethodShimPrivate()
+{
+    OstTraceFunctionEntry0(DUP1_CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_ENTRY);
+    
+    iCm.Close();
+
+    OstTraceFunctionExit0(DUP1_CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_EXIT);
+}
+   
+uint CmConnectionMethodShimPrivate::GetIntAttribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute) const
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETINTATTRIBUTE_ENTRY);
+    
+    uint value = 0;
+    TRAPD(error, value = iCm.GetIntAttributeL(attribute));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETINTATTRIBUTE_EXIT);
+    return value;
+}
+
+bool CmConnectionMethodShimPrivate::GetBoolAttribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute) const
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETBOOLATTRIBUTE_ENTRY);
+    
+    bool value = false;
+    TRAPD(error, value = iCm.GetBoolAttributeL(attribute));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETBOOLATTRIBUTE_EXIT);
+    return value;
+}
+
+QString CmConnectionMethodShimPrivate::GetStringAttribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute) const
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRINGATTRIBUTE_ENTRY);
+    
+    QString value;
+    TRAPD(error, GetStringAttributeL(attribute, value));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRINGATTRIBUTE_EXIT);
+    return value;
+}
+
+QString CmConnectionMethodShimPrivate::GetString8Attribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute) const
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRING8ATTRIBUTE_ENTRY);
+    
+    QString value;
+    TRAPD(error, GetString8AttributeL(attribute, value));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRING8ATTRIBUTE_EXIT);
+    return value;
+}
+
+void CmConnectionMethodShimPrivate::SetIntAttribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    uint value)
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETINTATTRIBUTE_ENTRY);
+    
+    TRAPD(error, SetIntAttributeL(attribute, value));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETINTATTRIBUTE_EXIT);
+}
+
+void CmConnectionMethodShimPrivate::SetBoolAttribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    bool value)
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETBOOLATTRIBUTE_ENTRY);
+    
+    TRAPD(error, SetBoolAttributeL(attribute, value));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETBOOLATTRIBUTE_EXIT);
+}
+
+void CmConnectionMethodShimPrivate::SetStringAttribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    QString value)
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRINGATTRIBUTE_ENTRY);
+    
+    TRAPD(error, SetStringAttributeL(attribute, value));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRINGATTRIBUTE_EXIT);
+}
+
+void CmConnectionMethodShimPrivate::SetString8Attribute( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    QString value)
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRING8ATTRIBUTE_ENTRY);
+    
+    TRAPD(error, SetString8AttributeL(attribute, value));
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRING8ATTRIBUTE_EXIT);
+}
+
+bool CmConnectionMethodShimPrivate::DeleteConnectionMethod()
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_DELETECONNECTIONMETHOD_ENTRY);
+    
+    bool value = false;
+    TRAPD(error, value = iCm.DeleteL());
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_DELETECONNECTIONMETHOD_EXIT);
+    return value;
+}
+     
+void CmConnectionMethodShimPrivate::Update()
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_UPDATE_ENTRY);
+    
+    TRAPD(error, iCm.UpdateL());
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_UPDATE_EXIT);
+}
+
+void CmConnectionMethodShimPrivate::Refresh()
+{
+    OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_REFRESH_ENTRY);
+    
+    TRAPD(error, iCm.RefreshL());
+    TraceIfError(error);
+    qt_symbian_throwIfError(error);
+    
+    OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_REFRESH_EXIT);
+}
+
+void CmConnectionMethodShimPrivate::GetStringAttributeL( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    QString &value) const
+{
+    HBufC* buf = iCm.GetStringAttributeL(attribute);
+    value = QString::fromUtf16(buf->Ptr(), buf->Length());
+    delete buf;
+}
+
+void CmConnectionMethodShimPrivate::GetString8AttributeL( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    QString &value) const
+{
+    HBufC8* buf = iCm.GetString8AttributeL(attribute);
+    value = QString::fromLatin1((const char*)buf->Ptr(), buf->Length());
+    delete buf;
+}
+
+void CmConnectionMethodShimPrivate::SetIntAttributeL( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    uint value)
+{
+    iCm.SetIntAttributeL(attribute, value);
+}
+
+void CmConnectionMethodShimPrivate::SetBoolAttributeL( 
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    bool value)
+{
+    iCm.SetBoolAttributeL(attribute, value);
+}
+
+void CmConnectionMethodShimPrivate::SetStringAttributeL(
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    QString value)
+{
+    TPtrC16 valuePtr(reinterpret_cast<const TUint16*>(value.utf16()));
+    iCm.SetStringAttributeL(attribute, valuePtr);
+}
+
+void CmConnectionMethodShimPrivate::SetString8AttributeL(
+    CMManagerShim::ConnectionMethodAttribute attribute,
+    QString value)
+{
+    QByteArray tempValue = value.toLatin1();
+    TPtrC8 valuePtr(reinterpret_cast<const unsigned char*>(tempValue.data()));
+    iCm.SetString8AttributeL(attribute, valuePtr);
+}
+
+/*!
+ * Traces given error code if it is not KErrNone. 
+ * 
+ * @param[in] error Symbian error code.
+ */
+
+void CmConnectionMethodShimPrivate::TraceIfError(TInt error) const
+{
+    if (error != KErrNone) {
+        OstTrace1(
+            TRACE_WARNING,
+            CMCONNECTIONMETHODSHIMPRIVATE_TRACEIFERROR,
+            "CmConnectionMethodShimPrivate::TraceIfError;Error code=%d",
+            error);
+    }
+}