vtengines/videoteleng/Inc/Base/VtEngUtils.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 23 Nov 2009 14:47:47 +0200
changeset 0 ed9695c8bcbe
permissions -rw-r--r--
Revision: 200948

/*
* Copyright (c) 2004-2006 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:  Video telephony engine TLS container.
*
*/



#ifndef VTENGUTILS_H
#define VTENGUTILS_H

//  INCLUDES
#include <e32base.h>


// FORWARD DECLARATIONS
class CVtEngInitializer;
class CVtEngHandlerContainer;
class CVtEngDebug;
class CVtEngStateManager;
class CVtEngSettings;
class CVtEngEventManager;
class CVtEngCRProxy;
class CVtEngAccessoryHandler;
class CVtEngSATClient;
class CVtEngDeviceLockMonitor;
class CVtEngExtensions;
class CVtEngMdtrMessageListener;
class CVtEngMdtrCommandSender;

// CLASS DECLARATION

/**
*  TLS container for pointers to essential objects.
*
*  @lib videoteleng.lib
*  @since Series 60 2.6
*/
NONSHARABLE_CLASS( CVtEngUtility ) : public CBase
    {
    public:  // Constructors and destructor
        
        /**
        * Two-phased constructor.
        */
        static CVtEngUtility* NewL();
        
        /**
        * Destructor.
        */
        virtual ~CVtEngUtility();

    public: // New functions
    
        /**
        * Creates SAT listener for updates.
        */
        void StartSATListenL();
        
        /**
        * Returns engine initializer.
        * @return initializer
        */
        inline CVtEngInitializer& Initializer() const;

        /**
        * Returns engine utility.
        * @return utility
        */
        static CVtEngUtility* EngineUtils();

        /**
        * Returns state manager.
        * @return state manager
        */
        static CVtEngStateManager* StateManager();

        /**
        * Returns event manager.
        * @return event manager
        */
        static CVtEngEventManager& EventManager();

        /**
        * Returns Central repository proxy.
        * @return ref to CR proxy
        */
        static CVtEngCRProxy& CRProxy();

        /**
        * Returns accessory listener.
        * @return accessory handler
        */
        static CVtEngAccessoryHandler& AccessoryHandler();

        /**
        * Returns settings.
        * @return ref to settings
        */
        static CVtEngSettings& Settings();
        
        /**
        * Returns mediator command sender.
        * @return ref to command sender
        */
        static CVtEngMdtrCommandSender& MediatorCommands();

        /**
        * Prepares the utility
        * @param aHandlers handler container
        * @param aStateManagerPtr state manager pointer ref
        * @param aEventManagerPtr event manager pointer ref
        * @param aExtensionPtr extension container pointer
        */
        void PrepareL( 
            CVtEngHandlerContainer& aHandlers,
            CVtEngStateManager*& aStateManagerPtr,
            CVtEngEventManager*& aEventManagerPtr,
            CVtEngExtensions* aExtensionPtr );

        /**
        * Notifies device lock to UI.
        */
        void NotifyLockState();
        
        /**
        * Returns Extension container.
        * @since S60 v3.2
        * @return pointer to extensions
        */
        static CVtEngExtensions* Extensions();
        /**
        * Starts listening mediator messages.
        */
        void StartMediatorListenerL();
        
    private:

        /**
        * C++ default constructor.
        */
        CVtEngUtility();

        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();
        
    private:    // Data

        // Initializater for the engine
        CVtEngInitializer*   iEngineInit;

        // State manager pointer
        CVtEngStateManager** iStateManager;

        // Settigs
        CVtEngSettings*      iSettings;

        // Event manager pointer
        CVtEngEventManager** iEventManager;

        // Central repository interface
        CVtEngCRProxy*       iCRProxy;

        // Accessory handler
        CVtEngAccessoryHandler* iAccessoryHandler;
        
        // SAT refresh listener
        CVtEngSATClient* iSATClient;
        
        // Monitor for device lock state
        CVtEngDeviceLockMonitor* iLockMonitor;
        
        // Extension pointer
        CVtEngExtensions* iExtensions;
        // For receiving Mediator commands and events        
        CVtEngMdtrMessageListener* iMdtrMessageListener;

        // For sending Mediator commands
        CVtEngMdtrCommandSender*   iMdtrCommandSender;
        
    };

#include "VtEngUtils.inl"

#endif      // VTENGUTILS_H
            
// End of File