diff -r 000000000000 -r 15bf7259bb7c uiaccelerator_plat/alf_visual_api/inc/alf/alfstatic.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiaccelerator_plat/alf_visual_api/inc/alf/alfstatic.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,119 @@ +/* +* Copyright (c) 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: Static class. +* +*/ + + + +#ifndef __ALFSTATIC_H__ +#define __ALFSTATIC_H__ + +#include + +/* Forward declarations. */ +class CAlfEnv; + +/** + * Miscellaneous globally used functions, and thread local storage space. + * + * CAlfStatic contains all the functions that tend to be used across classes. + * These functions are written in a non-OO fashion because + * they are used everywhere, so passing data such as delta step down through the + * entire class heirarchy is inefficient. + */ +NONSHARABLE_CLASS(CAlfStatic) : public CBase + { +public: + + /* Constructors and destructor. */ + + /** + * Constructor. The user application should not explicitly + * construct a CAlfStatic - it is constructed by CHuiEnv. + * + * @param aPrimaryEnv The toolkit environment. + */ + IMPORT_C static CAlfStatic* NewLC(CAlfEnv* aPrimaryEnv); + + /** + * Constructor. The user application should not explicitly + * construct a CAlfStatic - it is constructed by CHuiEnv. + * + * @param aPrimaryEnv The toolkit environment. + */ + IMPORT_C static CAlfStatic* NewL(CAlfEnv* aPrimaryEnv); + + + /** + * Destructor. + */ + virtual ~CAlfStatic(); + + + /* Methods. */ + + /** + * Determines the primary CHuiEnv instance. + */ + IMPORT_C static CAlfEnv& Env(); + +protected: + + /* Constructors. */ + + /** + * Constructor. Should not be called through the API. + */ + CAlfStatic(); + + /** + * Second-phase constructor. + * @param aPrimaryEnv Pass in the environment. + */ + void ConstructL(CAlfEnv* aPrimaryEnv); + + +private: + + /* Private methods */ + + /** + * Returns a pointer to the thread-local data struct. + */ + IMPORT_C static struct TTlsData* Data(); + + /** + * Updates the toolkit's time counters. This includes the toolkit's + * realtime clock, the internal absolute clock (which is affected by the + * time factor), the amount of elapsed time since last UpdateTime() + * invocation, and the amount of elapsed time since the first UpdateTime() + * invocation (which was done in the beginning of the first refresh). + * + * @param aData TLS Data which encapsulates the internal time variables. + */ + static void UpdateTime(struct TTlsData* aData); + +private: + + /** + * Thread local storage for this DLL, as we cannot declare static + * global variables in Symbian. + */ + struct TTlsData* iData; + + friend class CAlfEnv; + }; + +#endif //__ALFSTATIC_H__ \ No newline at end of file