diff -r 000000000000 -r 5d03bc08d59c windowing/windowserver/nga/SERVER/openwfc/registeredsurfacemap.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/nga/SERVER/openwfc/registeredsurfacemap.h Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,58 @@ +// Copyright (c) 2007-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: +// + +#ifndef REGISTEREDSURFACEMAP_H +#define REGISTEREDSURFACEMAP_H + +#include +#include + +class CWindowElementSet; +class CWsClient; +class TSessionSurfaces; +class MWsScene; + +class CRegisteredSurfaceMap : public CBase +{ +public: + ~CRegisteredSurfaceMap(); + CRegisteredSurfaceMap(MWsScene& aScene); + TInt Add(const CWsClient& aClient, const TSurfaceId& aSurfaceId); + TInt Remove(CWsClient& aClient, const TSurfaceId& aSurfaceId); + TInt RemoveAll(CWsClient& aClient); +private: + static TInt CompareDeviceSurfaces (const TSessionSurfaces& aLeft, const TSessionSurfaces& aRight); +private: + RArray iSessionSurfaces; + MWsScene& iScene; +}; + +class TSessionSurfaces +{ +private: + static TInt CompareIds (const TSurfaceId& aLeft, const TSurfaceId& aRight); +public: + TSessionSurfaces(const CWsClient& aSession); + inline const CWsClient& Session() const {return iSession;} + TInt AddSurfaceId(const TSurfaceId& aSurfaceId, MWsScene& aScene); + TInt RemoveSurfaceId(const TSurfaceId& aSurfaceId, MWsScene& aScene); + TInt RemoveAll(MWsScene& aScene); +private: + const CWsClient& iSession; +public: + RArray iSurfaces; +}; + +#endif // REGISTEREDSURFACEMAP_H