diff -r 1a2a00e78665 -r f62f87b200ec bagetmodel/src/baget_p.cpp --- /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; +}