--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgsettings/msginit/src/coutboxobserver.cpp Wed Aug 18 09:45:25 2010 +0300
@@ -0,0 +1,191 @@
+/*
+ * 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: Implements the class
+ *
+ */
+
+// INCLUDE FILES
+#include <e32def.h>
+#include <msvids.h> // Entry Ids
+#include <e32property.h>
+#include <PSVariables.h>
+#include "coutboxsender.h"
+#include "coutboxobserver.h"
+#include "cmobilesignalstrengthhandler.h"
+#include "debugtraces.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// COutboxObserver::COutboxObserver
+// ---------------------------------------------------------
+//
+COutboxObserver::COutboxObserver(){}
+
+// ---------------------------------------------------------
+// COutboxObserver::ConstructL
+// ---------------------------------------------------------
+//
+void COutboxObserver::ConstructL()
+{
+ QDEBUG_WRITE( "COutboxObserver::ConstructL Enter" );
+ // instantiate the signal strength handler
+ iSignalStrengthHandler = CMobileSignalStrengthHandler::NewL();
+
+ if (iSignalStrengthHandler->ObservingSupported())
+ {
+ iSignalStrengthHandler->SetSignalStrengthObserverL(this);
+ iSignalStrengthHandler->StartObservingL();
+ }
+ else
+ {
+ QDEBUG_WRITE( "COutboxObserver::ConstructL else part" );
+ }
+ QDEBUG_WRITE( "COutboxObserver::ConstructL Exit" );
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::NewL
+// ---------------------------------------------------------
+//
+COutboxObserver* COutboxObserver::NewL()
+{
+ // Create the instance of the outbox observer
+ COutboxObserver* self = new (ELeave) COutboxObserver();
+ // Push it to stack while executing the constructor
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::~COutboxObserver
+// ---------------------------------------------------------
+//
+COutboxObserver::~COutboxObserver()
+{
+ delete iSignalStrengthHandler;
+ EndSessions();
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::SignalStrengthUpdatedL
+// ---------------------------------------------------------
+//
+void COutboxObserver::SignalStrengthAndBarUpdatedL(TInt /*aNewSignalValue*/, TInt aNewBarValue)
+{
+ QDEBUG_WRITE_FORMAT( "COutboxObserver::SignalStrengthUpdatedL - Signal bars ", aNewBarValue );
+ // pass new bar value to outbox sender
+ InformOutboxSenderL(aNewBarValue);
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::InformOutboxSenderL
+// ---------------------------------------------------------
+//
+void COutboxObserver::InformOutboxSenderL(const TInt& aNetworkBars)
+{
+ if (iOutboxSender) {
+ QDEBUG_WRITE( "COutboxObserver::InformOutboxSenderL - Informing outbox sender." );
+
+ iOutboxSender->CheckAndStartSendingL(aNetworkBars);
+ }
+ else {
+ QDEBUG_WRITE( "COutboxObserver::InformOutboxSenderL - Outbox sender not initialized." );
+ }
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::StartSessionsL
+// ---------------------------------------------------------
+//
+void COutboxObserver::StartSessionsL(CMsvSession& aMsvSession)
+{
+ // Set outbox folder
+ iOutboxFolder = aMsvSession.GetEntryL(KMsvGlobalOutBoxIndexEntryId);
+ iOutboxFolder->AddObserverL(*this);
+
+ // Remove the Sender, if it exists
+ delete iOutboxSender;
+ iOutboxSender = NULL;
+
+ QDEBUG_WRITE("COutboxObserver::StartSessionsL - Initializing outbox sender.." );
+ iOutboxSender = COutboxSender::NewL(aMsvSession);
+
+ QDEBUG_WRITE( "COutboxObserver::StartSessionsL - Informing outbox sender of network status.." );
+
+ // get current signal bar value
+ TInt signalBars = 0;
+ TRAPD( err, signalBars = iSignalStrengthHandler->BarValueL() );
+
+ // check error
+ if (err == KErrNone)
+ {
+ QDEBUG_WRITE_FORMAT("COutboxObserver::StartSessionsL - Got signal bar value notifying..", signalBars );
+ iOutboxSender->CheckAndStartSendingL(signalBars);
+ }
+ else
+ {
+ QDEBUG_WRITE_FORMAT( "COutboxObserver::StartSessionsL - Failed to get signal bar value (err = )", err );
+ }
+
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::EndSessions
+// ---------------------------------------------------------
+//
+void COutboxObserver::EndSessions()
+{
+ // Delete Outbox sender
+ delete iOutboxSender;
+ iOutboxSender = NULL;
+
+ if (iOutboxFolder) {
+ // Delete outbox folder
+ iOutboxFolder->RemoveObserver(*this);
+ delete iOutboxFolder;
+ iOutboxFolder = NULL;
+ }
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::HandleMsvSessionReadyL
+// ---------------------------------------------------------
+//
+void COutboxObserver::HandleMsvSessionReadyL(CMsvSession& aMsvSession)
+{
+ StartSessionsL(aMsvSession);
+}
+// ---------------------------------------------------------
+// COutboxObserver::HandleMsvSessionClosedL
+// ---------------------------------------------------------
+//
+void COutboxObserver::HandleMsvSessionClosedL()
+{
+ EndSessions();
+}
+
+// ---------------------------------------------------------
+// COutboxObserver::HandleEntryEventL
+// ---------------------------------------------------------
+//
+void COutboxObserver::HandleEntryEventL(TMsvEntryEvent /*aEvent*/, TAny* /*aArg1*/,
+ TAny* /*aArg2*/, TAny* /*aArg3*/)
+{
+
+}
+
+// End of File