summaryrefslogtreecommitdiffstats
path: root/trunk/etherpad/src/static/js/broadcast_revisions.js
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/etherpad/src/static/js/broadcast_revisions.js')
-rw-r--r--trunk/etherpad/src/static/js/broadcast_revisions.js119
1 files changed, 0 insertions, 119 deletions
diff --git a/trunk/etherpad/src/static/js/broadcast_revisions.js b/trunk/etherpad/src/static/js/broadcast_revisions.js
deleted file mode 100644
index 7e99003..0000000
--- a/trunk/etherpad/src/static/js/broadcast_revisions.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS-IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// revision info is a skip list whos entries represent a particular revision
-// of the document. These revisions are connected together by various
-// changesets, or deltas, between any two revisions.
-function Revision(revNum) {
- this.rev = revNum;
- this.changesets = [];
-}
-
-Revision.prototype.addChangeset = function(destIndex, changeset, timeDelta) {
- var changesetWrapper = {
- deltaRev: destIndex-this.rev,
- deltaTime: timeDelta,
- getValue: function() {
- return changeset;
- }
- };
- this.changesets.push(changesetWrapper);
- this.changesets.sort(function(a, b) {
- return (b.deltaRev - a.deltaRev)
- });
-}
-
-revisionInfo = {};
-revisionInfo.addChangeset = function(fromIndex, toIndex, changeset, backChangeset, timeDelta) {
- var startRevision = revisionInfo[fromIndex] || revisionInfo.createNew(fromIndex);
- var endRevision = revisionInfo[toIndex] || revisionInfo.createNew(toIndex);
- startRevision.addChangeset(toIndex, changeset, timeDelta);
- endRevision.addChangeset(fromIndex, backChangeset, -1 * timeDelta);
-}
-
-revisionInfo.latest = clientVars.totalRevs || -1;
-
-revisionInfo.createNew = function(index) {
- revisionInfo[index] = new Revision(index);
- if(index > revisionInfo.latest) {
- revisionInfo.latest = index;
- }
-
- return revisionInfo[index];
-}
-
-// assuming that there is a path from fromIndex to toIndex, and that the links
-// are laid out in a skip-list format
-revisionInfo.getPath = function(fromIndex, toIndex) {
- var changesets = [];
- var spans = [];
- var times = [];
- var elem = revisionInfo[fromIndex] || revisionInfo.createNew(fromIndex);
- if(elem.changesets.length != 0 && fromIndex != toIndex) {
- var reverse = !(fromIndex < toIndex)
- while(((elem.rev < toIndex) && !reverse) ||
- ((elem.rev > toIndex) && reverse)) {
- var couldNotContinue = false;
- var oldRev = elem.rev;
-
- for(var i = reverse ? elem.changesets.length - 1 : 0;
- reverse?i>=0:i<elem.changesets.length;
- i += reverse ? -1 : 1) {
- if(((elem.changesets[i].deltaRev < 0) && !reverse) ||
- ((elem.changesets[i].deltaRev > 0) && reverse)) {
- couldNotContinue = true;
- break;
- }
-
- if(((elem.rev + elem.changesets[i].deltaRev <= toIndex) && !reverse) ||
- ((elem.rev + elem.changesets[i].deltaRev >= toIndex) && reverse)) {
- var topush = elem.changesets[i];
- changesets.push(topush.getValue());
- spans.push(elem.changesets[i].deltaRev);
- times.push(topush.deltaTime);
- elem = revisionInfo[elem.rev + elem.changesets[i].deltaRev];
- break;
- }
- }
-
- if(couldNotContinue || oldRev == elem.rev) break;
- }
- }
-
- var status = 'partial';
- if(elem.rev == toIndex)
- status = 'complete';
-
- return {
- 'fromRev':fromIndex,
- 'rev': elem.rev,
- 'status': status,
- 'changesets': changesets,
- 'spans' : spans,
- 'times' : times
- };
-}
-
-// revisionInfo.addChangeset(0, 5, "abcde")
-// revisionInfo.addChangeset(5, 10, "fghij")
-// revisionInfo.addChangeset(10, 11, "k")
-// revisionInfo.addChangeset(11, 12, "l")
-// revisionInfo.addChangeset(12, 13, "m")
-// revisionInfo.addChangeset(13, 14, "n")
-// revisionInfo.addChangeset(14, 15, "o")
-// revisionInfo.addChangeset(15, 20, "pqrst")
-//
-// print (revisionInfo.getPath(15, 0))