diff -r 000000000000 -r ff3b6d0fd310 phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionBase.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,172 @@ +/* +* Copyright (c) 2002-2004 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: Sub Session Base. +* +*/ + + +#ifndef CPHSRVSUBSESSIONBASE_H +#define CPHSRVSUBSESSIONBASE_H + + +// INCLUDES +#include +#include "MPhSrvMessageProcessor.h" + + +// FORWARD DECLARATIONS +class CPhSrvSubSessionNotifier; +class CPhSrvSession; + + +// CLASS DECLARATION + +/** +* The base class for all subsessions. +* +* @since 1.0 +*/ +class CPhSrvSubSessionBase : + public CObject, + public MPhSrvMessageProcessor + { + public: + + /* + * The subsessions type. + * + * EPhSrvSubSessionTypeUndefined Undefined subsession, error. + * EPhSrvSubSessionTypeExternalCall Call subsession. + * EPhSrvSubSessionTypeCallNotifier CallNotifiers subsession. + * EPhSrvSubSessionTypeUssd USSD subsession. + * EPhSrvSubSessionTypeIhf IHF subsession. + * EPhSrvSubSessionTypeEmergencyNumber Emergency number subsession. + * EPhSrvSubSessionTypeComHand Command Handler subsession. + * EPhSrvSubSessionTypeComHandNotify ComHand Notify subsession. + * EPhSrvSubSessionTypeMessenger Messenger subsession. + * EPhSrvSubSessionTypeImageHandler Image handler subsession. + * EPhSrvSubSessionTypeEmergencyCall Emergency call subsession. + */ + enum TPhSrvSubSessionType + { + EPhSrvSubSessionTypeUndefined = KErrNotFound, + EPhSrvSubSessionTypeExternalCall = 0, + EPhSrvSubSessionTypeCallNotifier = 1, + EPhSrvSubSessionTypeUssd = 2, + EPhSrvSubSessionTypeIhf = 3, + EPhSrvSubSessionTypeEmergencyNumber = 4, + EPhSrvSubSessionTypeComHand = 5, + EPhSrvSubSessionTypeComHandNotify = 6, + EPhSrvSubSessionTypeMessenger = 7, + EPhSrvSubSessionTypeImageHandler = 8, + EPhSrvSubSessionTypeEmergencyCall = 9 + + }; + + public: // Constructors and destructor + + /** + * Create an instance of this class + * + * @param aSession The session where this subsession belongs. + * @param aType The type of subsession that this object should represent. + */ + CPhSrvSubSessionBase( + CPhSrvSession& aSession, + TPhSrvSubSessionType aType ); + + /** + * Complete construction of the subsession. + */ + virtual void ConstructL() { } + + + public: // Access + + /** + * Return the owning session. + * + * @return A handle to the owning session. + */ + CPhSrvSession& PhoneSession(); + + /** + * Return the owning session. + * + * @return A constant handle to the owning session. + */ + const CPhSrvSession& PhoneSession() const; + + /** + * Return the type of this sub-session object. + * + * @return The type of this sub-session object. + */ + TPhSrvSubSessionType Type() const; + + /** + * Return the unique handle associated with this subsession. + * + * @return The unique handle associated with a subsession. + */ + TInt SubSessionUniqueHandle() const; + + + public: + + /** + * Writes to client address space and + * catch bad descriptors. + * + * @param aMessage The client. + * @param aPtr The location where the data is written. + * @param aDes The data that is written. + * @param aOffset The data location where to start the writing. + */ + void Write( + const RMessage2& aMessage, + TInt aLocation, + const TDesC8& aDes, + TInt aOffset = 0 ); + + /** + * Reads from client address space and + * catch bad descriptors. + * + * @param aMessage The client. + * @param aPtr The location where the data is read. + * @param aDes The read data storage. + * @param aOffset The data location where to start the reading. + */ + void Read( + const RMessage2& aMessage, + TInt aLocation, + TDes8& aDes, + TInt aOffset = 0 ); + + + private: // Data + + // A handle to the session which owns this subsession. + CPhSrvSession& iSession; + + // The type of sub-session that this object represents. + TPhSrvSubSessionType iSubSessionType; + }; + + +#endif // CPHSRVSUBSESSIONBASE_H + + +// End of File