Package org.waveprotocol.wave.model.id

Examples of org.waveprotocol.wave.model.id.WaveletId


          @Override
          protected MuxConnector createConnector() {
            return new MuxConnector() {
              private void connectWavelet(StaticChannelBinder binder,
                  ObservableWaveletData wavelet) {
                WaveletId waveletId = wavelet.getWaveletId();
                SlobId objectId = IdHack.objectIdFromWaveletId(waveletId);
                WaveletEntry data = wavelets.get(objectId);
                Assert.check(data != null, "Unknown wavelet: %s", waveletId);
                if (data.getChannelToken() == null) {
                  // TODO(danilatos): Handle with a nicer message, and maybe try to
View Full Code Here


  private StringMap<DocDiff> createDocumentDiffMap(
      WaveletDataImpl intermediateWavelet, List<String> tailMutations,
      StringMap<Long> lastReadVersions)
      throws MessageException, InvalidInputException {
    StringMap<DocDiff> documentDiffMap = CollectionUtils.createStringMap();
    WaveletId waveletId = intermediateWavelet.getWaveletId();
    long intermediateVersion = intermediateWavelet.getVersion();

    for (String documentId : intermediateWavelet.getDocumentIds()) {
      Long lastReadVersion = lastReadVersions.get(documentId, 0L);
      BlipDataImpl document = intermediateWavelet.getDocument(documentId);
View Full Code Here

        @Override
        public void destroy(WaveletId waveletId) {
        }
      };

      WaveletId udwId = getIdGenerator().newUserDataWaveletId(getSignedInUser().getAddress());
      final IdFilter filter = IdFilter.of(Collections.singleton(udwId),
          Collections.singleton(IdConstants.CONVERSATION_WAVELET_PREFIX));

      WaveletDataImpl.Factory snapshotFactory =
          WaveletDataImpl.Factory.create(getDocumentRegistry());
View Full Code Here

  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    String domain = request.getHeader("domain");
    WaveId waveId = WaveId.deserialise(request.getHeader("waveId"));
    WaveletId waveletId = WaveletId.deserialise(request.getHeader("waveletId"));
    final StringWriter error = new StringWriter();
    boolean somethingProcessed = false;
    boolean somethingSkipped = false;
    try {
      JSONObject exp = new JSONObject(readToString(request.getReader()));
      JSONArray rawDeltas = exp.getJSONObject("data").getJSONArray("rawDeltas");
      if (rawDeltas.length() != 0) {
        List<ProtocolAppliedWaveletDelta> deltas = new LinkedList<ProtocolAppliedWaveletDelta>();
        for (int i = 0; i < rawDeltas.length(); i++) {
          deltas.add(ProtocolAppliedWaveletDelta.parseFrom(Base64.decode(rawDeltas.getString(i))));
        }
        WaveletName waveletName = WaveletName.of(waveId, waveletId);
        LocalWaveletContainerImpl wavelet = (LocalWaveletContainerImpl) waveMap.getLocalWavelet(waveletName);
        Set<ParticipantId> participants = new HashSet<ParticipantId>();
        if (wavelet != null) {
          participants.addAll(wavelet.accessSnapshot().getParticipants());
        }
        for (ProtocolAppliedWaveletDelta appliedDelta : deltas) {
          ProtocolWaveletDelta delta = ProtocolWaveletDelta.parseFrom(
              appliedDelta.getSignedOriginalDelta().getDelta());
          long currentVersion = 0;
          if (wavelet != null) {
            currentVersion = wavelet.getCurrentVersion().getVersion();
          }
          if (currentVersion == delta.getHashedVersion().getVersion()) {
            ProtocolWaveletDelta newDelta = convertDelta(delta, domain, wavelet, waveletName,
                participants);

            waveletProvider.submitRequest(waveletName, newDelta,
                new WaveletProvider.SubmitRequestListener() {

                  @Override
                  public void onSuccess(int operationsApplied, HashedVersion hashedVersionAfterApplication,
                      long applicationTimestamp) {
                  }

                  @Override
                  public void onFailure(String errorMessage) {
                    error.write(errorMessage);
                  }
                });
            if (error.getBuffer().length() != 0) {
              break;
            }
            if (wavelet == null) {
              wavelet = (LocalWaveletContainerImpl) waveMap.getLocalWavelet(waveletName);
            }
            somethingProcessed = true;
          } else {
            somethingSkipped = true;
          }
        }
      }
    } catch (Exception ex) {
      LOG.log(Level.SEVERE, "waveId " + waveId.toString() + ", waveletId " + waveletId.toString(), ex);
      throw new IOException(ex);
    }
    response.setStatus(HttpServletResponse.SC_OK);
    if (error.getBuffer().length() != 0) {
      response.getOutputStream().write(("error : " + error.getBuffer()).getBytes());
View Full Code Here

      // waves, and requires raw wavelet access for snippeting.
      ObservableWaveletData root = null;
      ObservableWaveletData other = null;
      ObservableWaveletData udw = null;
      for (ObservableWaveletData waveletData : wave.getWavelets()) {
        WaveletId waveletId = waveletData.getWaveletId();
        if (IdUtil.isConversationRootWaveletId(waveletId)) {
          root = waveletData;
        } else if (IdUtil.isConversationalId(waveletId)) {
          other = waveletData;
        } else if (IdUtil.isUserDataWavelet(waveletId)) {
View Full Code Here

  private static final CopyOnWriteArraySet<PerUserWaveViewBus.Listener> listeners =
      new CopyOnWriteArraySet<PerUserWaveViewBus.Listener>();

  @Override
  public void waveletUpdate(ReadableWaveletData wavelet, DeltaSequence deltas) {
    WaveletId waveletId = wavelet.getWaveletId();
    WaveId waveId = wavelet.getWaveId();
    WaveletName waveletName = WaveletName.of(waveId, waveletId);
    // Find whether participants were added/removed and update the views
    // accordingly.
    for (TransformedWaveletDelta delta : deltas) {
View Full Code Here

          // If a missing wavelet could be reconnected at version zero then
          // fake the resync message here. The server no longer knows about
          // the wavelet so we should resubmit changes from version zero.
          Iterator<WaveletId> itr = missingWavelets.iterator();
          while (itr.hasNext()) {
            WaveletId maybeMissing = itr.next();
            List<HashedVersion> resyncVersions = expectedWavelets.get(maybeMissing);
            Preconditions.checkState(!resyncVersions.isEmpty(),
                "Empty resync versions for wavelet " + maybeMissing);
            if (resyncVersions.get(0).getVersion() == 0) {
              Stacklet stacklet = channels.get(maybeMissing);
View Full Code Here

  private void checkConnectVersions(Map<WaveletId, List<HashedVersion>> knownWavelets) {
    Iterator<Map.Entry<WaveletId, List<HashedVersion>>> itr =
        knownWavelets.entrySet().iterator();
    while (itr.hasNext()) {
      Map.Entry<WaveletId, List<HashedVersion>> entry = itr.next();
      WaveletId id = entry.getKey();
      if (IdFilter.accepts(waveletFilter, id)) {
        long prevVersion = NO_VERSION;
        for (HashedVersion v : entry.getValue()) {
          if ((prevVersion != NO_VERSION) && (v.getVersion() <= prevVersion)) {
            throw new IllegalArgumentException("Invalid reconnect versions for " + waveId
View Full Code Here

    Map<WaveletId, List<HashedVersion>> signatures =
      new HashMap<WaveletId, List<HashedVersion>>();
    for (KnownWavelet knownWavelet : knownWavelets) {
      if (knownWavelet.accessibility.isReadable()) {
        ObservableWaveletData snapshot = knownWavelet.snapshot;
        WaveletId waveletId = snapshot.getWaveletId();
        List<HashedVersion> sigs = Collections.singletonList(snapshot.getHashedVersion());
        signatures.put(waveletId, sigs);
      }
    }
    return signatures;
View Full Code Here

                // in the waves store.
                Map<WaveId, Wave> waves = waveMap.getWaves();
                for (Map.Entry<WaveId, Wave> entry : waves.entrySet()) {
                  Wave wave = entry.getValue();
                  for (WaveletContainer c : wave) {
                    WaveletId waveletId = c.getWaveletName().waveletId;
                    try {
                      if (!c.hasParticipant(user)) {
                        continue;
                      }
                      // Add this wave to the user view.
View Full Code Here

TOP

Related Classes of org.waveprotocol.wave.model.id.WaveletId

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.