webservices/wsutils/src/senattribute.cpp
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsutils/src/senattribute.cpp	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,203 @@
+/*
+* 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:      
+*
+*/
+
+
+
+
+
+
+
+#include "senattribute.h"
+
+#include "senlogger.h"
+
+
+//#ifdef _SENDEBUG
+// // CONSTATS for file logging
+//namespace
+//    {
+//    _LIT(KLogFileDir, "SenUtils");
+//    _LIT(KLogFileName, "SenAttribute.log"); 
+//    }
+//#endif // _SENDEBUG
+
+EXPORT_C CSenAttribute* CSenAttribute::NewL(const TDesC8& aName,
+                                            const TDesC8& aType,
+                                            const TDesC8& aValue,
+                                            const TDesC8& aFriendlyName)
+    {
+    CSenAttribute* pNew = new (ELeave) CSenAttribute;
+    CleanupStack::PushL(pNew);
+    pNew->ConstructL(aName, aType, aValue, aFriendlyName);
+    CleanupStack::Pop(); // pNew;
+    return pNew;
+    }
+
+EXPORT_C CSenAttribute* CSenAttribute::NewL(const TDesC8& aName,
+                                            const TDesC8& aType,
+                                            const TDesC8& aValue)
+    {
+    CSenAttribute* pNew = new (ELeave) CSenAttribute;
+    CleanupStack::PushL(pNew);
+    pNew->ConstructL(aName, aType, aValue, KNullDesC8());
+    CleanupStack::Pop(); // pNew;
+    return pNew;
+    }
+
+EXPORT_C CSenAttribute::~CSenAttribute()
+    {
+    delete ipName;
+    delete ipType;
+    delete ipFriendlyName;
+    iValues.ResetAndDestroy();
+
+//    // Close the log file and the connection to the server.
+//    LOG_WRITE((_L("Log file closed.")));
+//    LOG_CLOSELOG;
+//    LOG_CLOSE;
+    }
+
+EXPORT_C CSenAttribute::CSenAttribute()
+    {
+    }
+
+
+EXPORT_C void CSenAttribute::ConstructL(const TDesC8& aName,
+                                        const TDesC8& aType,
+                                        const TDesC8& aValue,
+                                        const TDesC8& aFriendlyName)
+    {
+//    LOG_CONNECT;
+//    LOG_CREATELOG((KLogFileDir, KLogFileName, EFileLoggingModeOverwrite));
+//    LOG_WRITE(( _L8("CSenAttribute::ConstructL(): Log opened") ));
+    TLSLOG_L(KSenUtilsLogChannel, KMinLogLevel, "CSenAttribute::ConstructL(): Start");
+    ipName = aName.AllocL() ;
+    ipType = aType.AllocL() ;
+    iValues.Append(aValue.AllocL());
+    // If the friendly nameparam isn't set, then don't set the owned value
+    ipFriendlyName = aFriendlyName.AllocL() ;
+    TLSLOG_L(KSenUtilsLogChannel, KMinLogLevel, "CSenAttribute::ConstructL(): End");
+    }
+
+
+EXPORT_C TPtrC8 CSenAttribute::Name() const
+    {
+    if ( ipName == NULL )
+        {
+        return KNullDesC8();
+        } else
+        {
+        return *ipName;
+        }
+    }
+
+
+EXPORT_C TPtrC8 CSenAttribute::Value() const
+    {
+    if ( 0 == iValues.Count() )
+        {
+        return KNullDesC8();
+        } else
+        {
+        return *iValues[0];
+        }
+    }
+
+
+EXPORT_C TPtrC8 CSenAttribute::Type() const
+    {
+    if ( ipType == NULL )
+        {
+        return KNullDesC8();
+        } else
+        {
+        return *ipType;
+        }
+    }
+
+
+EXPORT_C TPtrC8 CSenAttribute::FriendlyName() const
+    {
+    if ( ipFriendlyName == NULL )
+        {
+        return KNullDesC8();
+        } else
+        {
+        return *ipFriendlyName;
+        }
+    }
+
+
+EXPORT_C void CSenAttribute::SetValueL(const TDesC8& aValue)	//codescannerwarnings
+    {
+    iValues.ResetAndDestroy();
+    iValues.Append(aValue.AllocL());
+    }
+
+
+EXPORT_C void CSenAttribute::AddValueL(const TDesC8& aValue)	//codescannerwarnings
+    {
+    iValues.Append(aValue.AllocL());
+    }
+
+
+EXPORT_C const RAttrValueArray CSenAttribute::GetValues() const
+    {
+    return iValues;
+    }
+
+
+EXPORT_C TInt CSenAttribute::NumValues() const
+    {
+    return iValues.Count();
+    }
+
+
+EXPORT_C TBool CSenAttribute::Equals(const CSenAttribute& aAttr) const
+    {
+    if ( 0 != aAttr.Name().Compare(*ipName) ) return EFalse;
+    if ( 0 != aAttr.Type().Compare(*ipType) ) return EFalse;
+    if ( 0 != aAttr.FriendlyName().Compare(*ipFriendlyName) ) return EFalse;
+
+    TInt count = iValues.Count();
+    if ( count != aAttr.NumValues() ) return EFalse;
+
+    RAttrValueArray thatValues = aAttr.GetValues();
+    TBool ret = ETrue;
+    for ( TInt i = 0; i < count; i++ )
+        {
+        if ( EFalse == ret ) break;
+        ret = EFalse;
+        for ( TInt ii = 0; ii < count; ii++ )
+            {
+            if ( 0 == iValues[i]->Compare(*thatValues[ii]) )
+                {
+                ret = ETrue;
+                break;
+                }
+            }
+        }
+    return ret;
+    }
+
+
+//RFileLogger* CSenAttribute::Log() const
+//    {
+//    return(RFileLogger*) &iLog;
+//    }
+
+