bagetmodel/src/baget_p.cpp
changeset 60 f62f87b200ec
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bagetmodel/src/baget_p.cpp	Fri Mar 19 09:35:23 2010 +0200
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2009 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 Baget.
+*
+*/
+
+#include "baget_p.h"
+
+/*!
+    \class BagetPrivate
+    \brief Private implementation of Baget.
+ */
+
+/*!
+    Constructs a new BagetPrivate with \a bagetPublic.
+ */
+BagetPrivate::BagetPrivate(Baget * const bagetPublic) :
+    m_q(bagetPublic), mState(BagetStateConstructed)
+{
+}
+
+/*!
+    Destructs the class.
+ */
+BagetPrivate::~BagetPrivate()
+{
+}
+
+/*!
+    Manages Baget's start.
+ */
+void BagetPrivate::start()
+{
+    switch (mState)
+    {
+    case BagetStateConstructed:
+    case BagetStateStopped:
+        break;
+
+    default:
+        return;
+    }
+
+    mState = BagetStateRunning;
+    if (!m_q->onStart()) {
+        emit m_q->faulted();
+    }
+}
+
+/*!
+    Manages Baget's stop.
+ */
+void BagetPrivate::stop()
+{
+    switch (mState)
+    {
+    case BagetStateRunning:
+    case BagetStateSuspended:
+        break;
+
+    default:
+        return;
+    }
+
+    mState = BagetStateStopped;
+    if (!m_q->onStop()) {
+        emit m_q->faulted();
+    }
+}
+
+/*!
+    Manages Baget's resume.
+ */
+void BagetPrivate::resume()
+{
+    switch (mState)
+    {
+    case BagetStateSuspended:
+        break;
+
+    default:
+        return;
+    }
+
+    mState = BagetStateRunning;
+    if (!m_q->onResume()) {
+        emit m_q->faulted();
+    }
+}
+
+/*!
+    Manages Baget's suspend.
+ */
+void BagetPrivate::suspend()
+{
+    switch (mState)
+    {
+    case BagetStateRunning:
+        break;
+
+    default:
+        return;
+    }
+
+    mState = BagetStateSuspended;
+    if (!m_q->onSuspend()) {
+        emit m_q->faulted();
+    }
+}
+
+/*!
+    Returns Baget's current state.
+    \return The current state.
+ */
+BagetState BagetPrivate::currentState()
+{
+    return mState;
+}