remconserverpanic.h File Reference


const TLitC< sizeof(L"RemConClient")/2 >KRemConClientPanicCat[static]

Panic category used by Rem Con server to panic the client.

Enum TRemConClientPanic

Panic codes used by Rem Con server to panic the client.


The client side has passed an illegal IPC value


The client is already connection-oriented.


The client has called GoConnectionless, ConnectBearer or DisconnectBearer when the session is not connection-oriented.


The client called GoConnectionOriented with an unknown bearer UID. The given UID is not a known implementation of the bearer interface.


The client requested Send when there was already a Send outstanding on this session.


The client requested Receive when there was already a Receive outstanding on this session.


The client has not had their type set.


The client has attempted to set the type of the session when it has already been set.


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.


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.


A badly-formed descriptor or other lump of data was sent from the client side.


The client requested NotifyConnectionStatusChange when there was already a NotifyConnectionStatusChange outstanding on this session.

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.


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.


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


They client side has sent a corrupt set of supported operation ids.


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.


The client has not had their features set.


The client has tried to register the same interface in multiple sessions.


The client has tried to register different player information in multiple sessions. For example, this can happen if an application directly using the RemCon client side interfaces also uses another component that itself uses the RemCon client interfaces, such as Qt Key Capture.


This panic code indicates a programming error in RRemCon::GetConnections.