// **********************************************************************
//
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
package IceInternal;
final public class Protocol
{
//
// Size of the Ice protocol header
//
// Magic number (4 bytes)
// Protocol version major (Byte)
// Protocol version minor (Byte)
// Encoding version major (Byte)
// Encoding version minor (Byte)
// Message type (Byte)
// Compression status (Byte)
// Message size (Int)
//
public final static int headerSize = 14;
//
// The magic number at the front of each message
//
public final static byte magic[] = { 0x49, 0x63, 0x65, 0x50 }; // 'I', 'c', 'e', 'P'
//
// The current Ice protocol and encoding version
//
public final static byte protocolMajor = 1;
public final static byte protocolMinor = 0;
public final static byte encodingMajor = 1;
public final static byte encodingMinor = 0;
//
// The Ice protocol message types
//
public final static byte requestMsg = 0;
public final static byte requestBatchMsg = 1;
public final static byte replyMsg = 2;
public final static byte validateConnectionMsg = 3;
public final static byte closeConnectionMsg = 4;
public final static byte[] requestHdr =
{
IceInternal.Protocol.magic[0],
IceInternal.Protocol.magic[1],
IceInternal.Protocol.magic[2],
IceInternal.Protocol.magic[3],
IceInternal.Protocol.protocolMajor,
IceInternal.Protocol.protocolMinor,
IceInternal.Protocol.encodingMajor,
IceInternal.Protocol.encodingMinor,
IceInternal.Protocol.requestMsg,
(byte)0, // Compression status.
(byte)0, (byte)0, (byte)0, (byte)0, // Message size (placeholder).
(byte)0, (byte)0, (byte)0, (byte)0 // Request ID (placeholder).
};
public final static byte[] requestBatchHdr =
{
IceInternal.Protocol.magic[0],
IceInternal.Protocol.magic[1],
IceInternal.Protocol.magic[2],
IceInternal.Protocol.magic[3],
IceInternal.Protocol.protocolMajor,
IceInternal.Protocol.protocolMinor,
IceInternal.Protocol.encodingMajor,
IceInternal.Protocol.encodingMinor,
IceInternal.Protocol.requestBatchMsg,
0, // Compression status.
(byte)0, (byte)0, (byte)0, (byte)0, // Message size (placeholder).
(byte)0, (byte)0, (byte)0, (byte)0 // Number of requests in batch (placeholder).
};
public final static byte[] replyHdr =
{
IceInternal.Protocol.magic[0],
IceInternal.Protocol.magic[1],
IceInternal.Protocol.magic[2],
IceInternal.Protocol.magic[3],
IceInternal.Protocol.protocolMajor,
IceInternal.Protocol.protocolMinor,
IceInternal.Protocol.encodingMajor,
IceInternal.Protocol.encodingMinor,
IceInternal.Protocol.replyMsg,
(byte)0, // Compression status.
(byte)0, (byte)0, (byte)0, (byte)0 // Message size (placeholder).
};
}