williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: williamr@2: #ifndef REMCONINTERFACEIF_H williamr@2: #define REMCONINTERFACEIF_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: /** williamr@2: The UID of the interface between the interface selector and the outer layer williamr@2: API. Currently this consists of a single 'new message' method. If in future it williamr@2: changes (more methods are added) then a new M class and UID can be defined. williamr@2: New outer layer APIs can implement that M class and be used by the interface williamr@2: selector, without breaking existing outer layer APIs which still only williamr@2: implement this version of the interface. williamr@2: */ williamr@2: const TInt KRemConInterfaceIf1 = 0x1020D409; williamr@2: const TInt KRemConInterfaceIf2 = 0x10285A37; williamr@2: williamr@2: /** williamr@2: Mixin for outer layer interfaces to be notified of incoming messages (commands and responses). williamr@2: Having received a command, the client is obliged to send a response. williamr@2: A client can only have one send outstanding at any time. williamr@2: If commands come in quickly, the client is responsible for queueing its responses to them. williamr@2: Note that each command delivered to a target involves memory allocated in the server’s heap, williamr@2: which is only released on client closure or when a response is sent. williamr@2: */ williamr@2: class MRemConInterfaceIf williamr@2: { williamr@2: public: williamr@2: /** williamr@2: Called when a message comes in for this interface. williamr@2: @param aOperationId The interface-specific operation id. williamr@2: @param aData Any operation-specific data. williamr@2: */ williamr@2: virtual void MrcibNewMessage(TUint aOperationId, const TDesC8& aData) = 0; williamr@2: }; williamr@2: williamr@2: /** williamr@2: Mixin for outer layer interfaces to be notified of incoming messages. williamr@2: */ williamr@2: class MRemConInterfaceIf2 williamr@2: { williamr@2: public: williamr@2: /** williamr@2: Called when a message comes in for this interface. williamr@2: @param aOperationId The interface-specific operation id. williamr@2: @param aData Any operation-specific data. williamr@2: */ williamr@2: virtual void MrcibNewMessage(TUint aOperationId, const TDesC8& aData, TRemConMessageSubType aMessageSubType) = 0; williamr@2: }; williamr@2: williamr@2: williamr@2: #endif // REMCONINTERFACEIF_H