diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/ctsydispatchlayer/inc/requestqueueoneshot.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/ctsydispatchlayer/inc/requestqueueoneshot.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,89 @@ +// Copyright (c) 2008-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: +// + +/** + @file + @internalAll +*/ + +#ifndef REQUESTQUEUEONESHOT_H +#define REQUESTQUEUEONESHOT_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CMmDataPackage; +class MDispatcherCallback; + +// CLASS DECLARATION + +/** + * CRequestQueueOneShot holds a queue of requests which have been completed + * synchronously by the Licensee LTSY but needs completion + * asynchronously back up to the Common TSY. + */ +class CRequestQueueOneShot : public CAsyncOneShot + { +public: + + virtual ~CRequestQueueOneShot(); + + static CRequestQueueOneShot* NewL(); + static CRequestQueueOneShot* NewLC(); + + /** + * Class which encapsulates data returned from the Licensee LTSY for + * requests which are dealt with synchronously. The data held in this + * object is returned to the Common TSY. + */ + class TIpcDataPackage + { + public: + TIpcDataPackage(); + ~TIpcDataPackage(); + public: + TInt iIpc; + CMmDataPackage* iDataPackage; // When this field is assigned to an object, + // this TIpcDataPackage object takes ownership + // of it. + TInt iResultCode; + TBool iCleanupOnly; // Indicates to the dispatcher that it should not + // complete the request because the TSY is currently + // closing down. + MDispatcherCallback* iDispatcherCallback; + TSglQueLink iLink; + }; // class TIpcDataPackage + + void QueueRequest(TIpcDataPackage& aIpcDataPackage); + +protected: + + virtual void DoCancel(); + virtual void RunL(); + +private: + + CRequestQueueOneShot(); + void ConstructL(); + +private: + + TSglQue iIpcQueue; + + }; // class CRequestQueueOneShot + +#endif // REQUESTQUEUEONESHOT_H