cmmanager/connection_settings_shim/src/cmconnectionmethod_shim_s60.cpp
changeset 20 9c97ad6591ae
child 40 c5b848e6c7d1
equal deleted inserted replaced
18:fcbbe021d614 20:9c97ad6591ae
       
     1 /*
       
     2  * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0""
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:  
       
    15  * Private implementation of Wrapper for CM Manager Symbian interface.
       
    16  */
       
    17 
       
    18 // System includes
       
    19 
       
    20 #include <utf.h>
       
    21 
       
    22 // User includes
       
    23 
       
    24 #include "cmconnectionmethod_shim_s60_p.h"
       
    25 #include "OstTraceDefinitions.h"
       
    26 #ifdef OST_TRACE_COMPILER_IN_USE
       
    27 #include "cmconnectionmethod_shim_s60Traces.h"
       
    28 #endif
       
    29 
       
    30 
       
    31 /*!
       
    32     \class CmConnectionMethodShimPrivate
       
    33     \brief Private implementation class for CM Manager Connection Method Shim.
       
    34 
       
    35     Wrapper for CM Manager Symbian interface. Symbian leaves are converted to
       
    36     standard C++ exceptions.
       
    37     
       
    38     Wrapper functions are identical to those in CmConnectionMethodShim class,
       
    39     so refer to cmconnectionmethod_shim.h for descriptions. Private functions
       
    40     in this class are just leaving versions of the same wrapper functions.
       
    41 */
       
    42 
       
    43 // External function prototypes
       
    44 
       
    45 // Local constants
       
    46 
       
    47 // ======== LOCAL FUNCTIONS ========
       
    48 
       
    49 // ======== MEMBER FUNCTIONS ========
       
    50 
       
    51 /*!
       
    52  *  Constructor.
       
    53  *  
       
    54  *  @param[in] cm CM Manager connection method object.
       
    55  */
       
    56 
       
    57 CmConnectionMethodShimPrivate::CmConnectionMethodShimPrivate(
       
    58     RCmConnectionMethod &cm) :
       
    59     iCm(cm)
       
    60 {
       
    61     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_ENTRY);
       
    62     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_EXIT);
       
    63 }
       
    64 
       
    65 /*!
       
    66  *  Destructor.
       
    67  */
       
    68 
       
    69 CmConnectionMethodShimPrivate::~CmConnectionMethodShimPrivate()
       
    70 {
       
    71     OstTraceFunctionEntry0(DUP1_CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_ENTRY);
       
    72     
       
    73     iCm.Close();
       
    74 
       
    75     OstTraceFunctionExit0(DUP1_CMCONNECTIONMETHODSHIMPRIVATE_CMCONNECTIONMETHODSHIMPRIVATE_EXIT);
       
    76 }
       
    77    
       
    78 uint CmConnectionMethodShimPrivate::GetIntAttribute( 
       
    79     CMManagerShim::ConnectionMethodAttribute attribute) const
       
    80 {
       
    81     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETINTATTRIBUTE_ENTRY);
       
    82     
       
    83     uint value = 0;
       
    84     TRAPD(error, value = iCm.GetIntAttributeL(attribute));
       
    85     TraceIfError(error);
       
    86     qt_symbian_throwIfError(error);
       
    87     
       
    88     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETINTATTRIBUTE_EXIT);
       
    89     return value;
       
    90 }
       
    91 
       
    92 bool CmConnectionMethodShimPrivate::GetBoolAttribute( 
       
    93     CMManagerShim::ConnectionMethodAttribute attribute) const
       
    94 {
       
    95     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETBOOLATTRIBUTE_ENTRY);
       
    96     
       
    97     bool value = false;
       
    98     TRAPD(error, value = iCm.GetBoolAttributeL(attribute));
       
    99     TraceIfError(error);
       
   100     qt_symbian_throwIfError(error);
       
   101     
       
   102     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETBOOLATTRIBUTE_EXIT);
       
   103     return value;
       
   104 }
       
   105 
       
   106 QString CmConnectionMethodShimPrivate::GetStringAttribute( 
       
   107     CMManagerShim::ConnectionMethodAttribute attribute) const
       
   108 {
       
   109     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRINGATTRIBUTE_ENTRY);
       
   110     
       
   111     QString value;
       
   112     TRAPD(error, GetStringAttributeL(attribute, value));
       
   113     TraceIfError(error);
       
   114     qt_symbian_throwIfError(error);
       
   115     
       
   116     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRINGATTRIBUTE_EXIT);
       
   117     return value;
       
   118 }
       
   119 
       
   120 QString CmConnectionMethodShimPrivate::GetString8Attribute( 
       
   121     CMManagerShim::ConnectionMethodAttribute attribute) const
       
   122 {
       
   123     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRING8ATTRIBUTE_ENTRY);
       
   124     
       
   125     QString value;
       
   126     TRAPD(error, GetString8AttributeL(attribute, value));
       
   127     TraceIfError(error);
       
   128     qt_symbian_throwIfError(error);
       
   129     
       
   130     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_GETSTRING8ATTRIBUTE_EXIT);
       
   131     return value;
       
   132 }
       
   133 
       
   134 void CmConnectionMethodShimPrivate::SetIntAttribute( 
       
   135     CMManagerShim::ConnectionMethodAttribute attribute,
       
   136     uint value)
       
   137 {
       
   138     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETINTATTRIBUTE_ENTRY);
       
   139     
       
   140     TRAPD(error, SetIntAttributeL(attribute, value));
       
   141     TraceIfError(error);
       
   142     qt_symbian_throwIfError(error);
       
   143     
       
   144     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETINTATTRIBUTE_EXIT);
       
   145 }
       
   146 
       
   147 void CmConnectionMethodShimPrivate::SetBoolAttribute( 
       
   148     CMManagerShim::ConnectionMethodAttribute attribute,
       
   149     bool value)
       
   150 {
       
   151     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETBOOLATTRIBUTE_ENTRY);
       
   152     
       
   153     TRAPD(error, SetBoolAttributeL(attribute, value));
       
   154     TraceIfError(error);
       
   155     qt_symbian_throwIfError(error);
       
   156     
       
   157     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETBOOLATTRIBUTE_EXIT);
       
   158 }
       
   159 
       
   160 void CmConnectionMethodShimPrivate::SetStringAttribute( 
       
   161     CMManagerShim::ConnectionMethodAttribute attribute,
       
   162     QString value)
       
   163 {
       
   164     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRINGATTRIBUTE_ENTRY);
       
   165     
       
   166     TRAPD(error, SetStringAttributeL(attribute, value));
       
   167     TraceIfError(error);
       
   168     qt_symbian_throwIfError(error);
       
   169 
       
   170     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRINGATTRIBUTE_EXIT);
       
   171 }
       
   172 
       
   173 void CmConnectionMethodShimPrivate::SetString8Attribute( 
       
   174     CMManagerShim::ConnectionMethodAttribute attribute,
       
   175     QString value)
       
   176 {
       
   177     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRING8ATTRIBUTE_ENTRY);
       
   178     
       
   179     TRAPD(error, SetString8AttributeL(attribute, value));
       
   180     TraceIfError(error);
       
   181     qt_symbian_throwIfError(error);
       
   182     
       
   183     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_SETSTRING8ATTRIBUTE_EXIT);
       
   184 }
       
   185 
       
   186 bool CmConnectionMethodShimPrivate::DeleteConnectionMethod()
       
   187 {
       
   188     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_DELETECONNECTIONMETHOD_ENTRY);
       
   189     
       
   190     bool value = false;
       
   191     TRAPD(error, value = iCm.DeleteL());
       
   192     TraceIfError(error);
       
   193     qt_symbian_throwIfError(error);
       
   194     
       
   195     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_DELETECONNECTIONMETHOD_EXIT);
       
   196     return value;
       
   197 }
       
   198      
       
   199 void CmConnectionMethodShimPrivate::Update()
       
   200 {
       
   201     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_UPDATE_ENTRY);
       
   202     
       
   203     TRAPD(error, iCm.UpdateL());
       
   204     TraceIfError(error);
       
   205     qt_symbian_throwIfError(error);
       
   206 
       
   207     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_UPDATE_EXIT);
       
   208 }
       
   209 
       
   210 void CmConnectionMethodShimPrivate::Refresh()
       
   211 {
       
   212     OstTraceFunctionEntry0(CMCONNECTIONMETHODSHIMPRIVATE_REFRESH_ENTRY);
       
   213     
       
   214     TRAPD(error, iCm.RefreshL());
       
   215     TraceIfError(error);
       
   216     qt_symbian_throwIfError(error);
       
   217     
       
   218     OstTraceFunctionExit0(CMCONNECTIONMETHODSHIMPRIVATE_REFRESH_EXIT);
       
   219 }
       
   220 
       
   221 void CmConnectionMethodShimPrivate::GetStringAttributeL( 
       
   222     CMManagerShim::ConnectionMethodAttribute attribute,
       
   223     QString &value) const
       
   224 {
       
   225     HBufC* buf = iCm.GetStringAttributeL(attribute);
       
   226     value = QString::fromUtf16(buf->Ptr(), buf->Length());
       
   227     delete buf;
       
   228 }
       
   229 
       
   230 void CmConnectionMethodShimPrivate::GetString8AttributeL( 
       
   231     CMManagerShim::ConnectionMethodAttribute attribute,
       
   232     QString &value) const
       
   233 {
       
   234     HBufC8* buf = iCm.GetString8AttributeL(attribute);
       
   235     value = QString::fromLatin1((const char*)buf->Ptr(), buf->Length());
       
   236     delete buf;
       
   237 }
       
   238 
       
   239 void CmConnectionMethodShimPrivate::SetIntAttributeL( 
       
   240     CMManagerShim::ConnectionMethodAttribute attribute,
       
   241     uint value)
       
   242 {
       
   243     iCm.SetIntAttributeL(attribute, value);
       
   244 }
       
   245 
       
   246 void CmConnectionMethodShimPrivate::SetBoolAttributeL( 
       
   247     CMManagerShim::ConnectionMethodAttribute attribute,
       
   248     bool value)
       
   249 {
       
   250     iCm.SetBoolAttributeL(attribute, value);
       
   251 }
       
   252 
       
   253 void CmConnectionMethodShimPrivate::SetStringAttributeL(
       
   254     CMManagerShim::ConnectionMethodAttribute attribute,
       
   255     QString value)
       
   256 {
       
   257     TPtrC16 valuePtr(reinterpret_cast<const TUint16*>(value.utf16()));
       
   258     iCm.SetStringAttributeL(attribute, valuePtr);
       
   259 }
       
   260 
       
   261 void CmConnectionMethodShimPrivate::SetString8AttributeL(
       
   262     CMManagerShim::ConnectionMethodAttribute attribute,
       
   263     QString value)
       
   264 {
       
   265     QByteArray tempValue = value.toLatin1();
       
   266     TPtrC8 valuePtr(reinterpret_cast<const unsigned char*>(tempValue.data()));
       
   267     iCm.SetString8AttributeL(attribute, valuePtr);
       
   268 }
       
   269 
       
   270 /*!
       
   271  * Traces given error code if it is not KErrNone. 
       
   272  * 
       
   273  * @param[in] error Symbian error code.
       
   274  */
       
   275 
       
   276 void CmConnectionMethodShimPrivate::TraceIfError(TInt error) const
       
   277 {
       
   278     if (error != KErrNone) {
       
   279         OstTrace1(
       
   280             TRACE_WARNING,
       
   281             CMCONNECTIONMETHODSHIMPRIVATE_TRACEIFERROR,
       
   282             "CmConnectionMethodShimPrivate::TraceIfError;Error code=%d",
       
   283             error);
       
   284     }
       
   285 }