accessoryservices/remotecontrolfw/server/public/remconserverpanic.h
changeset 0 4e1aa6a622a0
child 70 653a8b91b95e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/remotecontrolfw/server/public/remconserverpanic.h	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,149 @@
+// Copyright (c) 2004-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:
+// Panic codes for RemConServer. 
+// The server may panic clients with these codes.
+// 
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#ifndef REMCONSERVERPANIC_H
+#define REMCONSERVERPANIC_H
+
+#include <e32base.h>
+
+/** Panic category used by Rem Con server to panic the client. */
+_LIT(KRemConClientPanicCat, "RemConClient");
+
+/** Panic codes used by Rem Con server to panic the client. */
+enum TRemConClientPanic
+	{
+	/** The client side has passed an illegal IPC value */
+	ERemConClientPanicIllegalIpc										= 0,
+
+	/** The client is already connection-oriented. */
+	ERemConClientPanicAlreadyConnectionOriented 						= 1,
+
+	/** The client has called GoConnectionless, ConnectBearer or 
+	DisconnectBearer when the session is not connection-oriented. */
+	ERemConClientPanicNotConnectionOriented 							= 2,
+
+	/** The client called GoConnectionOriented with an unknown bearer UID. The 
+	given UID is not a known implementation of the bearer interface. */
+	ERemConClientPanicBearerPluginIncorrectInterface					= 3,
+
+	/** The client requested Send when there was already a Send outstanding on 
+	this session. */
+	ERemConClientPanicSendAlreadyOutstanding							= 4,
+
+	/** The client requested Receive when there was already a Receive 
+	outstanding on this session. */
+	ERemConClientPanicReceiveAlreadyOutstanding 						= 5,
+	
+	/** The client has not had their type set. */
+	ERemConClientPanicClientTypeNotSet									= 6,
+
+	/** The client has attempted to set the type of the session when it has 
+	already been set. */
+	ERemConClientPanicClientTypeAlreadySet								= 7,
+
+	/** A client has used a bad or wrong session type in one of the following 
+	ways:
+	(a) The client has tried to set the type of the session to a bad type 
+	(neither controller nor target). 
+	(b) The client (not of controller type) has called GoConnectionOriented, 
+	GoConnectionless, ConnectBearer, ConnectBearerCancel, DisconnectBearer or 
+	DisconnectBearerCancel. */
+	ERemConClientPanicBadType											= 8,
+
+	/** A client tried to open a target session when there is already one in
+	that client process. 
+	
+	This is no longer an illegal condition and so the panic will never
+	be raised.
+	*/
+	ERemConClientPanicTwoTargetSessionsInOneProcess 					= 9,
+
+	/** A badly-formed descriptor or other lump of data was sent from the 
+	client side. */
+	ERemConClientPanicBadDescriptor 									= 10,
+
+	/** The client requested NotifyConnectionStatusChange when there was 
+	already a NotifyConnectionStatusChange outstanding on this session. */
+	ERemConClientPanicConnectionsNotificationAlreadyOutstanding 		= 11,
+	
+	/** The client has committed one of a number of abuses of the 
+	ConnectBearer/DisconnectBearer interface. 
+	With respect to Send, Receive, ConnectBearer and DisconnectBearer 
+	messages, the following is a table of the legal states of a session 
+	(- = not outstanding, X = outstanding):
+	Send	Receive		Connect		Disconnect
+	-		-			-			-
+	X		-			-			-
+	-		X			-			-
+	-		-			X			-
+	-		-			-			X
+	X		X			-			-
+	X		-			X			-
+	-		X			X			-
+	X		X			X			-
+	-		X			-			X
+	In other words, any combination of the four is legal except having a 
+	DisconnectBearer outstanding at the same time as either a Send or a 
+	ConnectBearer.
+	In addition, the client cannot call GoConnectionOriented or 
+	GoConnectionless while there's a Send, ConnectBearer or DisconnectBearer 
+	outstanding.
+	This code is also used to error attempts to post a ConnectBearer or 
+	DisconnectBearer request which is already outstanding.
+	This is all in the interests of tying the legal client side behaviour to a 
+	minimum of sensible operations.
+	*/
+	ERemConClientPanicBearerControlOutstanding							= 12,
+
+	/** The client has tried to send a response to a command which does not
+	exist in the logs as having been delivered to that client.
+	
+	This is no longer an illegal condition and so the panic will never
+	be raised.
+	*/
+	ERemConClientPanicNoCommand 										= 13,
+
+	/** RRemConTarget::RegisterInterestedAPIs(...) is called on an undefined session). This doesn't make any sense because the 
+	server only filters incoming commands for the target sessions.
+	
+	The client is paniced for misusing this API.
+	
+	This panic 
+	*/
+	ERemConClientPanicRegisterInterestedAPIsInNonTargetSession			= 14,	
+	
+	/** They client side has sent a corrupt set of supported operation ids.
+	 */
+	ERemConClientPanicCorruptSupportedOperations						= 15,
+	
+	/** RRemConTarget::RegisterInterestedOperations(...) is called on a non-target session
+	(i.e. controller or undefined session). Detailed information about the controller
+	operation support is not required by RemCon.
+	
+	The client is paniced for misusing this API.
+	*/
+	ERemConClientPanicRegisterInterestedOperationsInNonTargetSession	= 16,
+	};
+
+#endif // REMCONSERVERPANIC_H