Class SyncServerImpl

  • All Implemented Interfaces:
    SyncServer, java.io.Closeable, java.lang.AutoCloseable

    @Internal
    public final class SyncServerImpl
    extends java.lang.Object
    implements SyncServer
    Internal sync server implementation. Use SyncServer to access functionality, this class may change without notice.
    • Field Detail

      • url

        private final java.net.URI url
      • handle

        private volatile long handle
      • syncChangeListener

        @Nullable
        private volatile SyncChangeListener syncChangeListener
        Protects listener instance from garbage collection.
    • Method Detail

      • getHandle

        private long getHandle()
      • getUrl

        public java.lang.String getUrl()
        Description copied from interface: SyncServer
        Returns the URL this server is listening on, including the bound port (see SyncServer.getPort()).
        Specified by:
        getUrl in interface SyncServer
      • getPort

        public int getPort()
        Description copied from interface: SyncServer
        Returns the port this server listens on, or 0 if the server was not yet started.

        This is especially useful if the port was assigned arbitrarily (a "0" port was used in the URL when building the server).

        Specified by:
        getPort in interface SyncServer
      • isRunning

        public boolean isRunning()
        Description copied from interface: SyncServer
        Returns if the server is up and running.
        Specified by:
        isRunning in interface SyncServer
      • getStatsString

        public java.lang.String getStatsString()
        Description copied from interface: SyncServer
        Gets some statistics from the sync server.
        Specified by:
        getStatsString in interface SyncServer
      • start

        public void start()
        Description copied from interface: SyncServer
        Starts the server (e.g. bind to port) and gets everything operational.
        Specified by:
        start in interface SyncServer
      • stop

        public void stop()
        Description copied from interface: SyncServer
        Stops the server.
        Specified by:
        stop in interface SyncServer
      • close

        public void close()
        Description copied from interface: SyncServer
        Closes and cleans up all resources used by this sync server. It can no longer be used afterwards, build a new sync server instead. Does nothing if this sync server has already been closed.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface SyncServer
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Users of this class should explicitly call close() instead to avoid expensive finalization.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • nativeCreateFromFlatOptions

        private static long nativeCreateFromFlatOptions​(long storeHandle,
                                                        byte[] flatOptionsByteArray)
        Creates a native Sync server instance with FlatBuffer SyncServerOptions flatOptionsByteArray.
        Returns:
        The handle of the native server instance.
      • nativeDelete

        private void nativeDelete​(long handle)
      • nativeStart

        private void nativeStart​(long handle)
      • nativeStop

        private void nativeStop​(long handle)
      • nativeIsRunning

        private boolean nativeIsRunning​(long handle)
      • nativeGetPort

        private int nativeGetPort​(long handle)
      • nativeGetStatsString

        private java.lang.String nativeGetStatsString​(long handle)
      • nativeSetSyncChangesListener

        private void nativeSetSyncChangesListener​(long handle,
                                                  @Nullable
                                                  SyncChangeListener changesListener)