From 988ec833bcc9d5dcca7ea59611102a39f08b025c Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Fri, 10 Nov 2006 08:05:56 +0000
Subject: [PATCH] issue 508 These changes implement a window mechanism in the sycnhronization protocol.
---
opendj-sdk/opends/src/server/org/opends/server/synchronization/ServerStartMessage.java | 32 +++++++++++++++++++++++++++++---
1 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/synchronization/ServerStartMessage.java b/opendj-sdk/opends/src/server/org/opends/server/synchronization/ServerStartMessage.java
index c9fa051..a93d6ee 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/synchronization/ServerStartMessage.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/synchronization/ServerStartMessage.java
@@ -52,6 +52,7 @@
private int maxSendQueue;
private int maxReceiveDelay;
private int maxSendDelay;
+ private int windowSize;
private ServerState serverState = null;
/**
@@ -64,11 +65,13 @@
* @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();
@@ -77,6 +80,7 @@
this.maxSendDelay = maxSendDelay;
this.maxSendQueue = maxSendQueue;
this.serverState = serverState;
+ this.windowSize = windowSize;
try
{
@@ -100,7 +104,7 @@
{
/* The ServerStartMessage is encoded in the form :
* <operation type><baseDn><ServerId><ServerUrl><maxRecvDelay><maxRecvQueue>
- * <maxSendDelay><maxSendQueue><ServerState>
+ * <maxSendDelay><maxSendQueue><window><ServerState>
*/
try
{
@@ -161,6 +165,13 @@
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);
@@ -269,7 +280,7 @@
/*
* ServerStartMessage contains.
* <baseDn><ServerId><ServerUrl><maxRecvDelay><maxRecvQueue>
- * <maxSendDelay><maxSendQueue><ServerState>
+ * <maxSendDelay><maxSendQueue><windowsize><ServerState>
*/
try {
byte[] byteDn = baseDn.getBytes("UTF-8");
@@ -283,6 +294,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 +
@@ -291,6 +304,7 @@
byteMaxRecvQueue.length + 1 +
byteMaxSendDelay.length + 1 +
byteMaxSendQueue.length + 1 +
+ byteWindowSize.length + 1 +
byteServerState.length + 1;
byte[] resultByteArray = new byte[length];
@@ -313,6 +327,8 @@
pos = addByteArray(byteMaxSendQueue, resultByteArray, pos);
+ pos = addByteArray(byteWindowSize, resultByteArray, pos);
+
pos = addByteArray(byteServerState, resultByteArray, pos);
return resultByteArray;
@@ -322,4 +338,14 @@
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;
+ }
}
--
Gitblit v1.10.0