diff -r 000000000000 -r dfb7c4ff071f commsfwutils/commsbufs/inc/commsbufpondintf.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfwutils/commsbufs/inc/commsbufpondintf.h Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,95 @@ +// 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: +// + +#ifndef __COMMSBUFPONDINTF_H__ +#define __COMMSBUFPONDINTF_H__ + +#include + +class RCommsBuf; +class CCommsBufAsyncRequest; +class MCommsBufPondDbg; + +/** +This class defines a interface to communicate with the legacy mbufmanager or +with the system wide shared buffer mechanism +@internalTechnology +*/ +class MCommsBufPondIntf + { + public: + /** + Allocate a new RCommsBuf + + @param aSize - Requested total size + @param aMinBufSize - The size that the allocated buffer must atleast have + @param aMaxBufSize - The size that the allocated buffer "can" have. + + @return RCommsBuf if allocation is successful otherwise NULL. + */ + + virtual RCommsBuf* Alloc(TInt aSize, TInt aMinBufSize, TInt aMaxBufSize) =0; + + virtual RCommsBuf* FromHandle(TInt aHandle) =0; + + virtual TInt Store(TDes8& aStore) const = 0; + + /** + Frees the RCommsBuf + + @param aBuf - RCommsBuf for freeing + */ + virtual void Free(RCommsBuf* aBuf) =0; + /** + Total bytes available in the mbufmgr or shared buffer system + */ + virtual TInt BytesAvailable() const =0; + /** + Total bytes available in a pool with a given size. + */ + virtual TInt BytesAvailable(TInt aSize) const =0; + /** + Returns the buffer size that is greater than the given size. + */ + virtual TInt NextBufSize(TInt aSize) const =0; + + /** + Larget buffer size available in the mbufmgr or shared buffer system + */ + virtual TInt LargestBufSize() const =0; + /** + Request to allocate a RCommsBuf asynchronously + */ + virtual void StartRequest(CCommsBufAsyncRequest& aRequest) =0; + + /** + Cance the request to allocate a RCommsBuf asynchronously + */ + virtual void CancelRequest(CCommsBufAsyncRequest& aRequest) =0; + + /** + Set the conext. In the case of system shared buffer manager this function is not having any implmentation + as the context will be set by the RCommsBufPond. For mbufmgr which is another DLL needs + to set the context for the usage of global timers etc... + */ + virtual void SetContext() =0; + + virtual void Release(RLibrary& aLib) =0; + + virtual MCommsBufPondDbg& CommsBufPondDbg() =0; + + }; + +#endif // __COMMSBUFPONDINTF_H__