accessoryservices/remotecontrolfw/server/inc/targetsession.h
author hgs
Thu, 23 Sep 2010 10:05:41 +0300
changeset 70 653a8b91b95e
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
70
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of the License "Symbian Foundation License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
//
hgs
parents:
diff changeset
    15
hgs
parents:
diff changeset
    16
#ifndef TARGETSESSION_H
hgs
parents:
diff changeset
    17
#define TARGETSESSION_H
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#include "targetclientprocess.h"
hgs
parents:
diff changeset
    20
#include "session.h"
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
NONSHARABLE_CLASS(CRemConTargetSession) : public CRemConSession
hgs
parents:
diff changeset
    23
	{
hgs
parents:
diff changeset
    24
public:
hgs
parents:
diff changeset
    25
	/**
hgs
parents:
diff changeset
    26
	Factory method.
hgs
parents:
diff changeset
    27
	@param aClientProcess The client for which this session is being created.
hgs
parents:
diff changeset
    28
	@param aServer The server.
hgs
parents:
diff changeset
    29
	@param aBearerManager The bearer manager.
hgs
parents:
diff changeset
    30
	@param aId The unique ID of the new session.
hgs
parents:
diff changeset
    31
	@return Ownership of a new session.
hgs
parents:
diff changeset
    32
	*/
hgs
parents:
diff changeset
    33
	static CRemConTargetSession* NewL(CRemConTargetClientProcess& aClientProcess,
hgs
parents:
diff changeset
    34
		CRemConServer& aServer,
hgs
parents:
diff changeset
    35
		CBearerManager& aBearerManager,
hgs
parents:
diff changeset
    36
		TUint aId);
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
	~CRemConTargetSession();
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
	/** 
hgs
parents:
diff changeset
    41
	From CRemConSession.
hgs
parents:
diff changeset
    42
	Checks if this message is supported by the session
hgs
parents:
diff changeset
    43
	@param aMsg The message to check
hgs
parents:
diff changeset
    44
	@return ETrue if it is, EFalse otherwise
hgs
parents:
diff changeset
    45
	*/
hgs
parents:
diff changeset
    46
	TBool SupportedMessage(const CRemConMessage& aMsg) const;
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
	/**
hgs
parents:
diff changeset
    49
	 Indicates whether or not a given interface is supported by this
hgs
parents:
diff changeset
    50
	 target session.
hgs
parents:
diff changeset
    51
	 @param aInterfaceUid The UID of the interface to check for.
hgs
parents:
diff changeset
    52
	 @return ETrue if the interface is supported.
hgs
parents:
diff changeset
    53
	 */
hgs
parents:
diff changeset
    54
	TBool InterfaceSupported(TUid aInterfaceUid) const;
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
private: // From CRemConSession: utility- IPC command handlers
hgs
parents:
diff changeset
    57
	void SetPlayerType(const RMessage2& aMessage);
hgs
parents:
diff changeset
    58
	void SendUnreliable(const RMessage2& aMessage);
hgs
parents:
diff changeset
    59
	void RegisterInterestedAPIs(const RMessage2& aMessage);
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
private: // From CRemConSession: utility
hgs
parents:
diff changeset
    62
	CRemConMessage* DoPrepareSendMessageL(const RMessage2& aMessage);
hgs
parents:
diff changeset
    63
	void DoSendCancel();
hgs
parents:
diff changeset
    64
	void DoReceive();
hgs
parents:
diff changeset
    65
	void SendToServer(CRemConMessage& aMsg);
hgs
parents:
diff changeset
    66
	
hgs
parents:
diff changeset
    67
private: // utility
hgs
parents:
diff changeset
    68
	CRemConMessage* DoCreateUnreliableMessageL(const RMessage2& aMessage);
hgs
parents:
diff changeset
    69
	
hgs
parents:
diff changeset
    70
	
hgs
parents:
diff changeset
    71
private:
hgs
parents:
diff changeset
    72
	/**
hgs
parents:
diff changeset
    73
	Constructor.
hgs
parents:
diff changeset
    74
	@param aServer The server.
hgs
parents:
diff changeset
    75
	@param aBearerManager The bearer manager.
hgs
parents:
diff changeset
    76
	@param aId The unique ID of the new session.
hgs
parents:
diff changeset
    77
	*/
hgs
parents:
diff changeset
    78
	CRemConTargetSession(CRemConTargetClientProcess& aClientProcess,
hgs
parents:
diff changeset
    79
		CRemConServer& aServer, 
hgs
parents:
diff changeset
    80
		CBearerManager& aBearerManager,
hgs
parents:
diff changeset
    81
		TUint aId);
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
	/**
hgs
parents:
diff changeset
    84
	2nd-phase construction.
hgs
parents:
diff changeset
    85
	*/
hgs
parents:
diff changeset
    86
	void ConstructL();
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
private:
hgs
parents:
diff changeset
    89
	CRemConTargetClientProcess&	iClientProcess;
hgs
parents:
diff changeset
    90
	};
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
#endif /* TARGETSESSION_H */