diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/ss_std.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/ss_std.inl Tue Mar 16 16:12:26 2010 +0000 @@ -0,0 +1,151 @@ +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// CSocketServer +// +// + +inline CWorkerThread& CSocketServer::WorkerThread() const + { + return *iOwnerThread; + }; + +inline TWorkerId CSocketServer::WorkerId() const + { + return WorkerThread().WorkerId(); + } + +// +// CSockSession +// + +inline const CDealer& CSockSession::Dealer() const + { + // NB: this is really only a static_cast<> but the Gordian knot of class dependencies results in a forward + // declaration + return *reinterpret_cast(Server()); + } + +inline CSubSessionIx& CSockSession::SubSessions() + { + return iSubSessions; + } + +inline const CSubSessionIx& CSockSession::SubSessions() const + { + return iSubSessions; + } + +inline TSockManData* CSockSession::SockManGlobals() const + { + return WorkerThread().SockManGlobals(); + } + +// +// CSockSubSession +// + +inline void CSockSubSession::Open() + { + iAccessCount++; + } + +inline void CSockSubSession::Close() + { + iAccessCount--; + ASSERT(iAccessCount >= 0); + if(iAccessCount == 0) + { + RemoveAndDestroy(); + } + } + +inline TInt CSockSubSession::AccessCount() const + { + return iAccessCount; + } + +inline CSockSession* CSockSubSession::Session() + { + ASSERT(iSession); + return iSession; + } + +inline CPlayer& CSockSubSession::Player() const + { + ASSERT(iPlayer); + return *iPlayer; + } + +#ifdef SYMBIAN_NETWORKING_PERFMETRICS +inline void CSockSubSession::IncludePerformanceData(TInt aDeltaClientRxBytes, TInt aDeltaClientRxBuffBytes, TInt aDeltaClientTxBytes) + { + iSession->IncludePerformanceData(aDeltaClientRxBytes, aDeltaClientRxBuffBytes, aDeltaClientTxBytes); + } +#endif + + +inline const RMessage2& CSockSession::Message() const + { + return *iOurMessage; + } + +inline void CSockSession::CompleteDisconnect() + { + RMessage2 dm = iDisconnectMessage; + inherited::Disconnect(dm); + } + + +inline void CSocketScheduler::SetGlobals(TSockManData* aGlobals) + { + static_cast(CActiveScheduler::Current())->iGlobals = aGlobals; + } + +//inline void CSocketScheduler::SetWaitHook(TCallBack* aCall) +// { ((CSocketScheduler*)CActiveScheduler::Current())->iWaitHook=aCall; } + +inline TSockManData* CSocketScheduler::Globals() + { + return static_cast(CActiveScheduler::Current())->iGlobals; + } + +// +// CSubSessionIx +// + +/** +Optional locking. When accessing any of the public methods of this class in a multithreaded +environment, locking is often necessary. This lock does not allow for lock nesting. +*/ +inline void CSubSessionIx::Lock() const + { + iLock.Wait(); + } + +/** +Unlocking. +@see Lock() +*/ +inline void CSubSessionIx::Unlock() const + { + iLock.Signal(); + } + +/** +@return the number of active sub-sessions in the container. +*/ +inline TInt CSubSessionIx::ActiveCount() const + { + return iActiveCount; + }