Examples of SyncState


Examples of com.evernote.edam.notestore.SyncState

    }

    @Override
    protected void updateConnectorData(final UpdateInfo updateInfo) throws Exception {
        final NoteStoreClient noteStore = getNoteStoreClient(updateInfo);
        final SyncState syncState = noteStore.getSyncState();
        final String lastSyncTimeAtt = guestService.getApiKeyAttribute(updateInfo.apiKey, LAST_SYNC_TIME);
        long lastSyncTime = Long.valueOf(lastSyncTimeAtt);
        final String lastUpdateCountAtt = guestService.getApiKeyAttribute(updateInfo.apiKey, LAST_UPDATE_COUNT);
        long lastUpdateCount = Long.valueOf(lastUpdateCountAtt);
        if (syncState.getFullSyncBefore()>lastSyncTime) {
            // according to the edam sync spec, fullSyncBefore is "the cut-off date for old caching clients
            // to perform an incremental (vs. full) synchronization. This value may correspond to the point
            // where historic data (e.g. regarding expunged objects) was wiped from the account, or possibly
            // the time of a serious server issue that would invalidate client USNs"
            // This means that we are may leave items that the user actually deleted in the database, and thus
            // we need to basically do a history update again
            apiDataService.eraseApiData(updateInfo.apiKey);
            guestService.removeApiKeyAttribute(updateInfo.apiKey.getId(), LAST_SYNC_TIME);
            guestService.removeApiKeyAttribute(updateInfo.apiKey.getId(), LAST_UPDATE_COUNT);
            // let's properly log this
            logger.info("FullSync required for evernote connector, apiKeyId=" + updateInfo.apiKey.getId());
            performSync(updateInfo, noteStore, true);
        }
        else if (syncState.getUpdateCount()==lastUpdateCount)
            // nothing happened since we last updated
            return;
        else
            performSync(updateInfo, noteStore, false);
    }
View Full Code Here

Examples of com.evernote.edam.notestore.SyncState

        }
        return chunks;
    }

    private void saveSyncState(final UpdateInfo updateInfo, NoteStoreClient noteStore) throws TException, EDAMUserException, EDAMSystemException {
        final SyncState syncState = noteStore.getSyncState();
        int serviceLastUpdateCount = syncState.getUpdateCount();
        final long serviceLastSyncTime = syncState.getCurrentTime();
        final String lastUpdateCountAtt = String.valueOf(serviceLastUpdateCount);
        guestService.setApiKeyAttribute(updateInfo.apiKey, LAST_UPDATE_COUNT, lastUpdateCountAtt);
        final String lastSyncTimeAtt = String.valueOf(serviceLastSyncTime);
        guestService.setApiKeyAttribute(updateInfo.apiKey, LAST_SYNC_TIME, lastSyncTimeAtt);
    }
View Full Code Here

Examples of com.evernote.edam.notestore.SyncState

        enDisconnect();
        return;
      }
     
      // Get sync state
      SyncState syncState = null;
      try
        logger.log(logger.EXTREME, "Getting sync state");
        syncState = noteStore.getSyncState(authToken)
        syncSignal.saveUploadAmount.emit(syncState.getUploaded());
        syncSignal.saveEvernoteUpdateCount.emit(syncState.getUpdateCount());
        evernoteUpdateCount = syncState.getUpdateCount();
      } catch (EDAMUserException e) {
        e.printStackTrace();
        status.message.emit(tr("Error getting sync state! Aborting sync and disconnecting!"));
        syncSignal.errorDisconnect.emit();
        enDisconnect();
        return;
      } catch (EDAMSystemException e) {
        e.printStackTrace();
        status.message.emit(tr("Error getting sync state! Aborting sync and disconnecting!"));
        syncSignal.errorDisconnect.emit();
        enDisconnect();
        return;
      } catch (TException e) {
        e.printStackTrace();
        status.message.emit(tr("Error getting sync state! Aborting sync and disconnecting!"));
        syncSignal.errorDisconnect.emit();
        enDisconnect();
        return;
      }
     
      if (syncState == null) {
        logger.log(logger.EXTREME, "Sync State is null");
        status.message.emit(tr("Syncronization Error!"));
        return;
      }

      // Determine what to do.
      // If we need to do a full sync.
      logger.log(logger.LOW, "Full Sequence Before: " +syncState.getFullSyncBefore());
      logger.log(logger.LOW, "Last Sequence Date: " +sequenceDate);
      logger.log(logger.LOW, "Var Last Sequence Number: " +updateSequenceNumber);
      logger.log(logger.LOW, "DB Last Sequence Number: " + conn.getSyncTable().getUpdateSequenceNumber());
      if (syncState.getFullSyncBefore() > sequenceDate) {
        logger.log(logger.EXTREME, "Full sequence date has expired");
        sequenceDate = 0;
        conn.getSyncTable().setLastSequenceDate(0);
        updateSequenceNumber = 0;
        conn.getSyncTable().setUpdateSequenceNumber(0);
      }
      // Check for "special" sync instructions
      String syncLinked = conn.getSyncTable().getRecord("FullLinkedNotebookSync");
      String syncShared = conn.getSyncTable().getRecord("FullSharedNotebookSync");
      String syncNotebooks = conn.getSyncTable().getRecord("FullNotebookSync");
      String syncInkNoteImages = conn.getSyncTable().getRecord("FullInkNoteImageSync");
      if (syncLinked != null) {
        downloadAllLinkedNotebooks(localNoteStore);
      }
      if (syncShared != null) {
        downloadAllSharedNotebooks(localNoteStore);
      }
      if (syncNotebooks != null) {
        downloadAllNotebooks(localNoteStore);
      }
     
      if (syncInkNoteImages != null) {
        List<String> guids = conn.getNoteTable().noteResourceTable.findInkNotes();
        for (int i=0; i<guids.size(); i++) {
          downloadInkNoteImage(guids.get(i), authToken);
        }
        conn.getSyncTable().deleteRecord("FullInkNoteImageSync");
      }
     
      // If there are remote changes
      logger.log(logger.LOW, "Update Count: " +syncState.getUpdateCount());
      logger.log(logger.LOW, "Last Update Count: " +updateSequenceNumber);
     
      if (syncState.getUpdateCount() > updateSequenceNumber) {
        logger.log(logger.EXTREME, "Refresh needed is true");
        refreshNeeded = true;
        logger.log(logger.EXTREME, "Downloading changes");
        syncRemoteToLocal(localNoteStore);
      }
     
      //*****************************************
      //* Sync linked/shared notebooks
      //*****************************************
      //syncLinkedNotebooks();
      //conn.getNoteTable().getDirty();
      //disableUploads = true;   /// DELETE THIS LINE!!!!
      if (!disableUploads) {
        logger.log(logger.EXTREME, "Uploading changes");
        // Synchronize remote changes
        if (!error)
          syncExpunged(localNoteStore);
        if (!error)
          syncLocalTags(localNoteStore);
        if (!error)
          syncLocalNotebooks(localNoteStore);
        if (!error)
          syncLocalLinkedNotebooks(localNoteStore);
        if (!error)
          syncDeletedNotes(localNoteStore);
        if (!error)
          syncLocalNotes();
        if (!error)
          syncLocalSavedSearches(localNoteStore);
      }
     
      status.message.emit(tr("Cleaning up"));
      List<String> notes = conn.getNoteTable().expungeIgnoreSynchronizedNotes(conn.getSyncTable().getIgnoreRecords("NOTEBOOK"),
          conn.getSyncTable().getIgnoreRecords("TAG"), conn.getSyncTable().getIgnoreRecords("LINKEDNOTEBOOK"));
      if (notes.size() > 0)
        syncSignal.refreshLists.emit();
     
      //*****************************************
      //* End of synchronization
      //*****************************************
      if (refreshNeeded)
        syncSignal.refreshLists.emit();
     
      if (!error) {
        logger.log(logger.LOW, "Sync completed.  Errors=" +error);
        if (!disableUploads)
          status.message.emit(tr("Synchronizing complete"));
        else
          status.message.emit(tr("Download syncronization complete.  Uploads have been disabled."));
       
        logger.log(logger.EXTREME, "Saving sync time");
        if (syncState.getCurrentTime() > sequenceDate)
          sequenceDate = syncState.getCurrentTime();
        if (syncState.getUpdateCount() > updateSequenceNumber)
          updateSequenceNumber = syncState.getUpdateCount();
        conn.getSyncTable().setLastSequenceDate(sequenceDate);
        conn.getSyncTable().setUpdateSequenceNumber(updateSequenceNumber);
      }
    }
    logger.log(logger.HIGH, "Leaving SyncRunner.evernoteSync");
View Full Code Here

Examples of com.evernote.edam.notestore.SyncState

           } else {
             logger.log(logger.EXTREME, "Share key is null");
             linkedAuthResult = new AuthenticationResult();
             linkedAuthResult.setAuthenticationToken("");
           }
           SyncState linkedSyncState =
             linkedNoteStore.getLinkedNotebookSyncState(linkedAuthResult.getAuthenticationToken(), books.get(i));
           if (linkedSyncState.getUpdateCount() > lastSequenceNumber) {
             logger.log(logger.EXTREME, "Remote changes found");
             if (lastSyncDate < linkedSyncState.getFullSyncBefore()) {
               lastSequenceNumber = 0;
             }
             logger.log(logger.EXTREME, "Calling syncLinkedNotebook for " +books.get(i).getShareName());
             syncLinkedNotebook(linkedNoteStore, books.get(i),
                 lastSequenceNumber, linkedSyncState.getUpdateCount(), authToken);
           }
         
          // Synchronize local changes
          syncLocalLinkedNoteChanges(linkedNoteStore, books.get(i));
       
View Full Code Here

Examples of com.jcraft.jogg.SyncState

    /**
     * Initializes all the jOrbis and jOgg vars that are used for song playback.
     */
    private void init_jorbis() {
        oggSyncState_ = new SyncState();
        oggStreamState_ = new StreamState();
        oggPage_ = new Page();
        oggPacket_ = new Packet();
        vorbisInfo = new Info();
        vorbisComment = new Comment();
View Full Code Here

Examples of com.jcraft.jogg.SyncState

    /**
     * Initializes all the jOrbis and jOgg vars that are used for song playback.
     */
    private void init_jorbis() {
        oggSyncState_ = new SyncState();
        oggStreamState_ = new StreamState();
        oggPage_ = new Page();
        oggPacket_ = new Packet();
        vorbisInfo = new Info();
        vorbisComment = new Comment();
View Full Code Here

Examples of com.jcraft.jogg.SyncState

        int index;
        byte[] buffer;
        int bytes = 0;

        state.oy = new SyncState();
        state.oy.init();

        index = state.oy.buffer( CHUNKSIZE );
        buffer = state.oy.data;
        try {
View Full Code Here

Examples of com.jcraft.jogg.SyncState

    /*
     * Taken from the JOrbis Player
     */
    private void initJOrbis(){
        oy=new SyncState();
        os=new StreamState();
        og=new Page();
        op=new Packet();
     
        vi=new Info();
View Full Code Here

Examples of com.jcraft.jogg.SyncState

            catch (Exception e) {
                System.err.println(e);
            }
        }

        SyncState oy = new SyncState(); // sync and verify incoming physical bitstream
        StreamState os = new StreamState(); // take physical pages, weld into a logical stream of packets
        Page og = new Page(); // one Ogg bitstream page.  Vorbis packets are inside
        Packet op = new Packet(); // one raw packet of data for decode

        Info vi = new Info(); // struct that stores all the static vorbis bitstream settings
        Comment vc = new Comment(); // struct that stores all the bitstream user comments
        DspState vd = new DspState(); // central working state for the packet->PCM decoder
        Block vb = new Block(vd); // local working space for packet->PCM decode

        byte[] buffer;
        int bytes = 0;

        // Decode setup

        oy.init(); // Now we can read pages

        while (true) { // we repeat if the bitstream is chained
            int eos = 0;

            // grab some data at the head of the stream.  We want the first page
            // (which is guaranteed to be small and only contain the Vorbis
            // stream initial header) We need the first page to get the stream
            // serialno.

            // submit a 4k block to libvorbis' Ogg layer
            int index = oy.buffer(4096);
            buffer = oy.data;
            try {
                bytes = input.read(buffer, index, 4096);
            }
            catch (Exception e) {
                System.err.println(e);
                System.exit(-1);
            }
            oy.wrote(bytes);

            // Get the first page.
            if (oy.pageout(og) != 1) {
                // have we simply run out of data?  If so, we're done.
                if (bytes < 4096)
                    break;

                // error case.  Must not be Vorbis data
                System.err.println("Input does not appear to be an Ogg bitstream.");
                System.exit(1);
            }

            // Get the serial number and set up the rest of decode.
            // serialno first; use it to set up a logical stream
            os.init(og.serialno());

            // extract the initial header from the first page and verify that the
            // Ogg bitstream is in fact Vorbis data

            // I handle the initial header first instead of just having the code
            // read all three Vorbis headers at once because reading the initial
            // header is an easy way to identify a Vorbis bitstream and it's
            // useful to see that functionality seperated out.

            vi.init();
            vc.init();
            if (os.pagein(og) < 0) {
                // error; stream version mismatch perhaps
                System.err.println("Error reading first page of Ogg bitstream data.");
                System.exit(1);
            }

            if (os.packetout(op) != 1) {
                // no page? must not be vorbis
                System.err.println("Error reading initial header packet.");
                System.exit(1);
            }

            if (vi.synthesis_headerin(vc, op) < 0) {
                // error case; not a vorbis header
                System.err
                        .println("This Ogg bitstream does not contain Vorbis audio data.");
                System.exit(1);
            }

            // At this point, we're sure we're Vorbis.  We've set up the logical
            // (Ogg) bitstream decoder.  Get the comment and codebook headers and
            // set up the Vorbis decoder

            // The next two packets in order are the comment and codebook headers.
            // They're likely large and may span multiple pages.  Thus we reead
            // and submit data until we get our two pacakets, watching that no
            // pages are missing.  If a page is missing, error out; losing a
            // header page is the only place where missing data is fatal. */

            int i = 0;
            while (i < 2) {
                while (i < 2) {

                    int result = oy.pageout(og);
                    if (result == 0)
                        break; // Need more data
                    // Don't complain about missing or corrupt data yet.  We'll
                    // catch it at the packet output phase

                    if (result == 1) {
                        os.pagein(og); // we can ignore any errors here
                        // as they'll also become apparent
                        // at packetout
                        while (i < 2) {
                            result = os.packetout(op);
                            if (result == 0)
                                break;
                            if (result == -1) {
                                // Uh oh; data at some point was corrupted or missing!
                                // We can't tolerate that in a header.  Die.
                                System.err.println("Corrupt secondary header.  Exiting.");
                                System.exit(1);
                            }
                            vi.synthesis_headerin(vc, op);
                            i++;
                        }
                    }
                }
                // no harm in not checking before adding more
                index = oy.buffer(4096);
                buffer = oy.data;
                try {
                    bytes = input.read(buffer, index, 4096);
                }
                catch (Exception e) {
                    System.err.println(e);
                    System.exit(1);
                }
                if (bytes == 0 && i < 2) {
                    System.err.println("End of file before finding all Vorbis headers!");
                    System.exit(1);
                }
                oy.wrote(bytes);
            }

            // Throw the comments plus a few lines about the bitstream we're
            // decoding
            {
                byte[][] ptr = vc.user_comments;
                for (int j = 0; j < ptr.length; j++) {
                    if (ptr[j] == null)
                        break;
                    System.err.println(new String(ptr[j], 0, ptr[j].length - 1));
                }
                System.err.println("\nBitstream is " + vi.channels + " channel, " + vi.rate
                        + "Hz");
                System.err.println("Encoded by: "
                        + new String(vc.vendor, 0, vc.vendor.length - 1) + "\n");
            }

            convsize = 4096 / vi.channels;

            // OK, got and parsed all three headers. Initialize the Vorbis
            //  packet->PCM decoder.
            vd.synthesis_init(vi); // central decode state
            vb.init(vd); // local state for most of the decode
            // so multiple block decodes can
            // proceed in parallel.  We could init
            // multiple vorbis_block structures
            // for vd here

            float[][][] _pcm = new float[1][][];
            int[] _index = new int[vi.channels];
            // The rest is just a straight decode loop until end of stream
            while (eos == 0) {
                while (eos == 0) {

                    int result = oy.pageout(og);
                    if (result == 0)
                        break; // need more data
                    if (result == -1) { // missing or corrupt data at this page position
                        System.err
                                .println("Corrupt or missing data in bitstream; continuing...");
                    } else {
                        os.pagein(og); // can safely ignore errors at
                        // this point
                        while (true) {
                            result = os.packetout(op);

                            if (result == 0)
                                break; // need more data
                            if (result == -1) { // missing or corrupt data at this page position
                                // no reason to complain; already complained above
                            } else {
                                // we have a packet.  Decode it
                                int samples;
                                if (vb.synthesis(op) == 0) { // test for success!
                                    vd.synthesis_blockin(vb);
                                }

                                // **pcm is a multichannel float vector.  In stereo, for
                                // example, pcm[0] is left, and pcm[1] is right.  samples is
                                // the size of each channel.  Convert the float values
                                // (-1.<=range<=1.) to whatever PCM format and write it out

                                while ((samples = vd.synthesis_pcmout(_pcm, _index)) > 0) {
                                    float[][] pcm = _pcm[0];
                                    int bout = (samples < convsize ? samples : convsize);

                                    // convert floats to 16 bit signed ints (host order) and
                                    // interleave
                                    for (i = 0; i < vi.channels; i++) {
                                        int ptr = i * 2;
                                        //int ptr=i;
                                        int mono = _index[i];
                                        for (int j = 0; j < bout; j++) {
                                            int val = (int) (pcm[i][mono + j] * 32767.);
                                            //          short val=(short)(pcm[i][mono+j]*32767.);
                                            //          int val=(int)Math.round(pcm[i][mono+j]*32767.);
                                            // might as well guard against clipping
                                            if (val > 32767) {
                                                val = 32767;
                                            }
                                            if (val < -32768) {
                                                val = -32768;
                                            }
                                            if (val < 0)
                                                val = val | 0x8000;
                                            convbuffer[ptr] = (byte) (val);
                                            convbuffer[ptr + 1] = (byte) (val >>> 8);
                                            ptr += 2 * (vi.channels);
                                        }
                                    }

                                    System.out.write(convbuffer, 0, 2 * vi.channels * bout);

                                    // tell libvorbis how
                                    // many samples we
                                    // actually consumed
                                    vd.synthesis_read(bout);
                                }
                            }
                        }
                        if (og.eos() != 0)
                            eos = 1;
                    }
                }
                if (eos == 0) {
                    index = oy.buffer(4096);
                    buffer = oy.data;
                    try {
                        bytes = input.read(buffer, index, 4096);
                    }
                    catch (Exception e) {
                        System.err.println(e);
                        System.exit(1);
                    }
                    oy.wrote(bytes);
                    if (bytes == 0)
                        eos = 1;
                }
            }

            // clean up this logical bitstream; before exit we see if we're
            // followed by another [chained]

            os.clear();

            // ogg_page and ogg_packet structs always point to storage in
            // libvorbis.  They're never freed or manipulated directly

            vb.clear();
            vd.clear();
            vi.clear(); // must be called last
        }

        // OK, clean up the framer
        oy.clear();
        System.err.println("Done.");
    }
View Full Code Here

Examples of com.jcraft.jogg.SyncState

  /*
   * Taken from the JOrbis Player
   */
  private void initJOrbis(){
      oy=new SyncState();
      os=new StreamState();
      og=new Page();
      op=new Packet();
   
      vi=new Info();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.