From 88e5620001d65afa8d0d8e07d1361fa44705743e Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Fri, 11 May 2007 13:19:28 +0000
Subject: [PATCH] This code allows the replication code to replay operation in the correct order when operation have dependencies (like adding child entry after parent)

---
 opends/src/server/org/opends/server/replication/common/ServerState.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/common/ServerState.java b/opends/src/server/org/opends/server/replication/common/ServerState.java
index b7e64d0..38fd50d 100644
--- a/opends/src/server/org/opends/server/replication/common/ServerState.java
+++ b/opends/src/server/org/opends/server/replication/common/ServerState.java
@@ -304,4 +304,25 @@
   {
     return list.keySet().iterator();
   }
+
+  /**
+   * Check that all the ChangeNumbers in the covered serverState are also in
+   * this serverState.
+   *
+   * @param covered The ServerState that needs to be checked.
+   * @return A boolean indicating if this ServerState covers the ServerState
+   *         given in parameter.
+   */
+  public boolean cover(ServerState covered)
+  {
+    for (ChangeNumber coveredChange : covered.list.values())
+    {
+      ChangeNumber change = this.list.get(coveredChange.getServerId());
+      if ((change == null) || (change.older(coveredChange)))
+      {
+        return false;
+      }
+    }
+    return true;
+  }
 }

--
Gitblit v1.10.0