| | |
| | | private int maxSendQueue; |
| | | private int maxReceiveDelay; |
| | | private int maxSendDelay; |
| | | private int windowSize; |
| | | private ServerState serverState = null; |
| | | |
| | | /** |
| | |
| | | * @param maxReceiveQueue The max receive Queue for this server. |
| | | * @param maxSendDelay The max Send Delay from this server. |
| | | * @param maxSendQueue The max send Queue from this server. |
| | | * @param windowSize The window size used by this server. |
| | | * @param serverState The state of this server. |
| | | */ |
| | | public ServerStartMessage(short serverId, DN baseDn, int maxReceiveDelay, |
| | | int maxReceiveQueue, int maxSendDelay, |
| | | int maxSendQueue, ServerState serverState) |
| | | int maxSendQueue, int windowSize, |
| | | ServerState serverState) |
| | | { |
| | | this.serverId = serverId; |
| | | this.baseDn = baseDn.toString(); |
| | |
| | | this.maxSendDelay = maxSendDelay; |
| | | this.maxSendQueue = maxSendQueue; |
| | | this.serverState = serverState; |
| | | this.windowSize = windowSize; |
| | | |
| | | try |
| | | { |
| | |
| | | { |
| | | /* The ServerStartMessage is encoded in the form : |
| | | * <operation type><baseDn><ServerId><ServerUrl><maxRecvDelay><maxRecvQueue> |
| | | * <maxSendDelay><maxSendQueue><ServerState> |
| | | * <maxSendDelay><maxSendQueue><window><ServerState> |
| | | */ |
| | | try |
| | | { |
| | |
| | | pos += length +1; |
| | | |
| | | /* |
| | | * read the windowSize |
| | | */ |
| | | length = getNextLength(in, pos); |
| | | windowSize = Integer.valueOf(new String(in, pos, length, "UTF-8")); |
| | | pos += length +1; |
| | | |
| | | /* |
| | | * read the ServerState |
| | | */ |
| | | serverState = new ServerState(in, pos, in.length-1); |
| | |
| | | /* |
| | | * ServerStartMessage contains. |
| | | * <baseDn><ServerId><ServerUrl><maxRecvDelay><maxRecvQueue> |
| | | * <maxSendDelay><maxSendQueue><ServerState> |
| | | * <maxSendDelay><maxSendQueue><windowsize><ServerState> |
| | | */ |
| | | try { |
| | | byte[] byteDn = baseDn.getBytes("UTF-8"); |
| | |
| | | String.valueOf(maxSendDelay).getBytes("UTF-8"); |
| | | byte[] byteMaxSendQueue = |
| | | String.valueOf(maxSendQueue).getBytes("UTF-8"); |
| | | byte[] byteWindowSize = |
| | | String.valueOf(windowSize).getBytes("UTF-8"); |
| | | byte[] byteServerState = serverState.getBytes(); |
| | | |
| | | int length = 1 + byteDn.length + 1 + byteServerId.length + 1 + |
| | |
| | | byteMaxRecvQueue.length + 1 + |
| | | byteMaxSendDelay.length + 1 + |
| | | byteMaxSendQueue.length + 1 + |
| | | byteWindowSize.length + 1 + |
| | | byteServerState.length + 1; |
| | | |
| | | byte[] resultByteArray = new byte[length]; |
| | |
| | | |
| | | pos = addByteArray(byteMaxSendQueue, resultByteArray, pos); |
| | | |
| | | pos = addByteArray(byteWindowSize, resultByteArray, pos); |
| | | |
| | | pos = addByteArray(byteServerState, resultByteArray, pos); |
| | | |
| | | return resultByteArray; |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Get the window size for the ldap server that created the message. |
| | | * |
| | | * @return The window size for the ldap server that created the message. |
| | | */ |
| | | public int getWindowSize() |
| | | { |
| | | return windowSize; |
| | | } |
| | | } |