Package org.waveprotocol.wave.model.operation.wave

Examples of org.waveprotocol.wave.model.operation.wave.TransformedWaveletDelta


    final long initialVersion = 57;
    final int serverOps1 = 7;
    checkedConnectChannel(initialVersion);

    // Receive server delta.
    final TransformedWaveletDelta delta1 = buildServerDelta(initialVersion, serverOps1);
    receiver.expectDelta(delta1);
    receiveUpdateOnConnectedChannel(delta1);

    // Submit delta.
    final long versionAfterServer1 = initialVersion + serverOps1;
    final int sigAfterServer1 = 0x11111111;
    final int clientOps = 5;
    final WaveletDelta clientDelta = buildDelta(versionAfterServer1, clientOps);
    submitDeltaOnConnectedChannel(clientDelta);

    // Receive a second server delta that initially looks ok.
    final long versionAfterClient = versionAfterServer1 + clientOps;
    final int sigAfterClient = 0x22222222;
    final TransformedWaveletDelta delta2 = buildServerDelta(versionAfterClient, 1);
    receiveUpdateOnConnectedChannel(delta2);

    // Receive ack for fewer than the number of ops than we
    // sent (some were transformed away).
    final byte[] ackedSignature = sig(3);
View Full Code Here


                                   + delta.getTargetVersion() + ", server: "
                                   + deltaHistory.getCurrentVersion());
    }
    WaveletDelta result = delta;
    while (result.getTargetVersion().getVersion() < deltaHistory.getCurrentVersion()) {
      TransformedWaveletDelta serverDelta =
          deltaHistory.getDeltaStartingAt(result.getTargetVersion().getVersion());
      if (serverDelta == null) {
        // Note that this will trigger if the available history changes out from
        // under us. This should not happen as the caller of this method should
        // control changes to the underlying set via locks, e.g. writeLock in
        // the WS's WaveletContext.
        throw new IllegalStateException("No delta at version: " + result.getTargetVersion());
      }
      DeltaPair pair = new DeltaPair(result, serverDelta).transform();
      result = new WaveletDelta(delta.getAuthor(), serverDelta.getResultingVersion(),
          pair.getClient());
    }
    return result;
  }
View Full Code Here

  public ReOpenInfo reopen(List<HashedVersion> clientKnownSignatures) {
    List<TransformedWaveletDelta> deltas = CollectionUtils.newArrayList();
    // Find the most recent delta.
    for (int i = clientKnownSignatures.size() - 1; i >= 0; i--) {
      if (deltaHistory.hasSignature(clientKnownSignatures.get(i))) {
        TransformedWaveletDelta old =
            deltaHistory.getDeltaStartingAt(clientKnownSignatures.get(i).getVersion());
        while (old != null) {
          deltas.add(old);
          old = deltaHistory.getDeltaStartingAt(old.getResultingVersion().getVersion());
        }
        return new ReOpenInfo(clientKnownSignatures.get(i), deltas);
      }
    }
    return null;
View Full Code Here

  /**
   * Creates a container message mimicking a resync message for a wavelet at
   * version zero.
   */
  private List<TransformedWaveletDelta> createVersionZeroResync(WaveletName wavelet) {
    return Collections.singletonList(new TransformedWaveletDelta((ParticipantId) null,
        hashFactory.createVersionZero(wavelet), 0L, Collections.<WaveletOperation> emptyList()));
  }
View Full Code Here

      int numOps) throws InvalidProtocolBufferException {
    // Use no-op delta so the ops can actually apply.
    WaveletDelta delta = UTIL.makeNoOpDelta(appliedAtVersion, timestamp, numOps);
    ByteStringMessage<ProtocolAppliedWaveletDelta> appliedDelta =
        WaveServerTestUtil.buildAppliedDelta(delta, timestamp);
    TransformedWaveletDelta transformedDelta =
        AppliedDeltaUtil.buildTransformedDelta(appliedDelta, delta);
    return new WaveletDeltaRecord(appliedAtVersion, appliedDelta, transformedDelta);
  }
View Full Code Here

    HashedVersion connectVersion;
    // This stream has reconnected at a previous version of the wavelet.
    // The first delta has zero operations. It carries the reconnect version
    // and signature.
    TransformedWaveletDelta firstDelta = deltas.get(0);
    if (firstDelta.size() != 0) {
      throw new ChannelException("Delta channel: invalid first wave stream message, "
          + "expected no ops, got " + firstDelta.size(), NOT_RECOVERABLE);
    }
    connectVersion = HashedVersion.of(firstDelta.getAppliedAtVersion(),
        firstDelta.getResultingVersion().getHistoryHash());
    logTrace("Delta channel reconnecting, connect version ",
        connectVersion.getVersion(), " current version ", currentSignedVersion != null ?
            currentSignedVersion.getVersion() : connectVersion.getVersion());

    processConnect(connectVersion, lastCommittedVersion, currentSignedVersion);
View Full Code Here

      throws OperationException {
    List<WaveletOperation> inverseOps = Lists.newArrayList();

    // Go through everything in reverse order
    for (int i = deltas.size() - 1; i >= 0; i--) {
      TransformedWaveletDelta delta = deltas.get(i);
      // Metadata such as the last modified ts will change due to the rollback
      // of operations.
      for (int j = delta.size() - 1; j >= 0; j--) {
        WaveletOperation op = delta.get(j);
        WaveletOperation inverseOp = WaveletOperationInverter.invert(op);
        inverseOps.add(inverseOp);
      }
    }
View Full Code Here

    HashedVersion targetVersion = HashedVersion.of(0, new byte[] {3, 2, 1});
    HashedVersion resultingVersion = HashedVersion.of(2, new byte[] {1, 2, 3});

    List<WaveletOperation> ops =
        ImmutableList.of(UTIL.noOp(), UTIL.addParticipant(TestingConstants.OTHER_PARTICIPANT));
    TransformedWaveletDelta transformed = TransformedWaveletDelta.cloneOperations(
        TestingConstants.PARTICIPANT, resultingVersion, 1234567890, ops);

    ProtocolWaveletDelta serializedDelta = CoreWaveletOperationSerializer.serialize(transformed);

    ProtocolSignature signature =
View Full Code Here

  }

  private TransformedWaveletDelta delta(WaveletOperation... ops) {
    WaveletOperation last = ops[ops.length - 1];
    WaveletOperationContext ctx = last.getContext();
    return new TransformedWaveletDelta(
        ctx.getCreator(), ctx.getHashedVersion(), ctx.getTimestamp(), Arrays.asList(ops));
  }
View Full Code Here

        transformedEntry != null ? transformedEntry.getValue() : null;
    if (snapshot == null) {
      return null;
    } else {
      WaveletDeltaRecord deltaRecord = getDeltaRecordByEndVersion(endVersion);
      TransformedWaveletDelta delta;
      if (deltaRecord == null && cachedDelta != null
          && cachedDelta.getResultingVersion().equals(endVersion)) {
        delta = cachedDelta.getTransformedDelta();
      } else {
        delta = deltaRecord != null ? deltaRecord.getTransformedDelta() : null;
View Full Code Here

TOP

Related Classes of org.waveprotocol.wave.model.operation.wave.TransformedWaveletDelta

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.