bluetoothcommsprofiles/btpan/panmessages/inc/panmessages.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 11:01:00 +0300
branchRCL_3
changeset 22 786b94c6f0a4
parent 0 29b1cd4cb562
permissions -rw-r--r--
Revision: 201031 Kit: 201033

// 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:
// Custom messages between BNEP and PAN
// 
//

/**
 @file
 @internalComponent
*/

#ifndef PANMESSAGES_H
#define PANMESSAGES_H

#include <e32base.h>
#include <comms-infras/ss_nodemessages.h>
#include <comms-infras/eintsock.h>

#include "panroles.h"
#include "pancommon.h"

const TInt KPanMessagesImplementationUid = 0x1028376D;


// PAN Custom Message Signatures
DECLARE_MESSAGE_SIG_1(SigInternalSocket, RInternalSocket*, Socket)
DECLARE_MESSAGE_SIG_1(SigBool, TBool, Value)
DECLARE_MESSAGE_SIG_1(SigSetupConnectionResponse, TBnepSetupConnectionResponseMessage, SetupResponse)
DECLARE_MESSAGE_SIG_2(SigUuidUuid, TUUID, RequestedLocalRole, TUUID, RequestedRemoteRole)
DECLARE_MESSAGE_SIG_2(SigPanRolePanRole, TBluetoothPanRole, RequestedLocalRole, TBluetoothPanRole, RequestedRemoteRole)

/*
@internalComponent 
*/
NONSHARABLE_CLASS(TPanMessage)
	{
private:
    enum
	    {
        // 0 is always TCFNodeSignalBase::TMessageId::KCFNullMessageId
    	ECreateChannelController			    = 1,
    	ESetRetryConnect                        = 2,
    	ERoleRequestFromRemoteDevice            = 3,
    	ERoleResponseFromRemoteDevice           = 4,
    	ERemoteDeviceDisconnect                 = 5,
    	ERoleRequestFromLocalDevice             = 6,
    	ERoleResponseFromLocalDevice            = 7,
    	ECloseChannelController                 = 8,
    	ESetUplinkAccessAllowedForBnepLink      = 9,
    	EChannelControllerCreated               = 10,
    	ESetRetryConnectComplete                = 11,
    	EChannelControllerClosed                = 12
    	};

public:
    /** Register the messages with the comms-transport */
	IMPORT_C static void RegisterL();

    /** De-register the messages with the comms-transport */
	IMPORT_C static void DeRegister();

public:
    enum { ERealmId = 0x1028376C }; // Same as DLL Uid
    
    /**
    Activities that help identify what a TLastMessageAck is actually
    ACKing.
    */
    enum TPanActivity
        {
        EActivityNull                       = MeshMachine::KActivityNull,
        EActivityCreateChannelControllerForIncoming,    // 1
        EActivityCreateChannelControllerForOutgoing,    // 2
        };
    
    // MBnepConnectionManager replacement messages   
    typedef TMessageSigInternalSocket<ECreateChannelController, ERealmId> TCreateChannelController;
    typedef Messages::TMessageSigVoid<ESetRetryConnect, ERealmId> TSetRetryConnect;


    // MPanConnectionNotify replacement messages (Bnep -> Pan)
    typedef TMessageSigUuidUuid<ERoleRequestFromRemoteDevice, ERealmId> TRoleRequestFromRemoteDevice;
    typedef TMessageSigSetupConnectionResponse<ERoleResponseFromRemoteDevice, ERealmId> TRoleResponseFromRemoteDevice;
    typedef Messages::TMessageSigNumber<ERemoteDeviceDisconnect, ERealmId> TRemoteDeviceDisconnect;


    // MBnepChannelControl replacement messages (Pan -> Bnep)
    typedef TMessageSigPanRolePanRole<ERoleRequestFromLocalDevice, ERealmId> TRoleRequestFromLocalDevice;
    typedef TMessageSigSetupConnectionResponse<ERoleResponseFromLocalDevice, ERealmId> TRoleResponseFromLocalDevice;
    typedef Messages::TMessageSigVoid<ECloseChannelController, ERealmId> TCloseChannelController;
    typedef TMessageSigBool<ESetUplinkAccessAllowedForBnepLink, ERealmId> TSetUplinkAccessAllowedForBnepLink;
    
    // Messages not corresponding to legacy interfaces
    typedef Messages::TMessageSigNumber<EChannelControllerCreated, ERealmId> TChannelControllerCreated;
    typedef Messages::TMessageSigNumber<ESetRetryConnectComplete, ERealmId> TSetRetryConnectComplete;
	};
	
#endif
// PANMESSAGES_H