presencecache/presencecacheqt/src/prcpresencewriterprivate_qt.cpp
changeset 40 b46a585f6909
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/presencecache/presencecacheqt/src/prcpresencewriterprivate_qt.cpp	Fri Jun 11 13:29:23 2010 +0300
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2008 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:  Implementation for presence cache QT client.
+*
+*/
+
+#include <e32std.h>
+#include <s32buf.h>
+ #include <QString>
+
+#include "prcpresencewriterprivate_qt.h"
+#include <prcpresencebuddyinfo_qt.h>
+#include "prcpresencecachebuddyinfo_qt.h"
+
+
+
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::~PrcPresenceWriterPrivate()
+// ---------------------------------------------------------------------------
+PrcPresenceWriterPrivate::~PrcPresenceWriterPrivate()
+{
+    delete iSymbianWriter;  
+     
+}
+    
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::PrcPresenceWriterPrivate()
+// ---------------------------------------------------------------------------
+//
+PrcPresenceWriterPrivate::PrcPresenceWriterPrivate()
+{
+    
+    iSymbianWriter= NULL;
+    TRAP_IGNORE(
+            iSymbianWriter = MPresenceCacheWriter2::CreateWriterL();
+               );
+}
+
+
+   
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::writePresence()
+// ---------------------------------------------------------------------------
+bool PrcPresenceWriterPrivate::writePresence(const PrcPresenceBuddyInfoQt* aPresenceBuddyInfo) 
+{
+    PresenceCacheBuddyInfoQt* bInfo = static_cast<PresenceCacheBuddyInfoQt*>(const_cast<PrcPresenceBuddyInfoQt*>(aPresenceBuddyInfo));
+    MPresenceBuddyInfo2* t = bInfo->getSymbianBuddyInstance();
+    TRAPD(err,iSymbianWriter->WritePresenceL(t));
+    return ( KErrNone == err );
+ 
+    
+}
+     
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::newBuddyPresenceInfo()
+// ---------------------------------------------------------------------------
+PrcPresenceBuddyInfoQt* PrcPresenceWriterPrivate::newBuddyPresenceInfo() 
+{
+    
+    MPresenceBuddyInfo2* newbuddy = NULL; 
+    TRAP_IGNORE(
+            newbuddy = iSymbianWriter->NewBuddyPresenceInfoLC();
+            CleanupStack::Pop();
+               ); 
+    return new PresenceCacheBuddyInfoQt(newbuddy);
+      
+ 
+
+}
+
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::deleteService()
+// ---------------------------------------------------------------------------
+bool PrcPresenceWriterPrivate::deleteService(const QString& serviceName)
+{
+
+    TPtrC sn(static_cast<const TUint16*>(serviceName.utf16()),serviceName.length());
+    TInt ret = iSymbianWriter->DeleteService(sn);    
+    return (KErrNone == ret);
+}
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::deletePresence()
+// ---------------------------------------------------------------------------        
+bool PrcPresenceWriterPrivate::deletePresence(const QString& identity) 
+{
+    TPtrC id(static_cast<const TUint16*>(identity.utf16()),identity.length());
+    TRAPD(err, iSymbianWriter->DeletePresenceL(id));
+    return ( KErrNone == err );
+}
+        
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::cancelWrite()
+// ---------------------------------------------------------------------------
+bool PrcPresenceWriterPrivate::cancelWrite()
+{
+    int ret = iSymbianWriter->CancelWrite();
+    return (KErrNone == ret );
+}
+
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::writeMultiplePresence()
+// ---------------------------------------------------------------------------
+bool  PrcPresenceWriterPrivate::writeMultiplePresence(
+    const QList<PrcPresenceBuddyInfoQt*> & presenceBuddyInfos)
+ {
+    RPointerArray<MPresenceBuddyInfo2> buddyInfosArray;
+    for(int i= 0 ; i < presenceBuddyInfos.count();i++)
+       {
+       PresenceCacheBuddyInfoQt* bInfo = static_cast<PresenceCacheBuddyInfoQt*>(const_cast<PrcPresenceBuddyInfoQt*>(presenceBuddyInfos[i]));
+       MPresenceBuddyInfo2* t = bInfo->getSymbianBuddyInstance();
+       buddyInfosArray.Append(t);
+       }
+    TRAPD(err,iSymbianWriter->WriteMultiplePresenceL(buddyInfosArray,this));
+    return ( KErrNone == err );
+   
+   
+ }
+ 
+// ---------------------------------------------------------------------------
+// PrcPresenceWriterPrivate::HandlePresenceWriteL()
+// ---------------------------------------------------------------------------
+void PrcPresenceWriterPrivate::HandlePresenceWriteL(int aErrorCode)
+{
+    bool ret = (KErrNone == aErrorCode);
+    emit signalPresenceWrite(ret);
+}
+