All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.firebase.database.connection.PersistentConnection Maven / Gradle / Ivy

/*
 * Copyright 2017 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.
 */

package com.google.firebase.database.connection;

import java.util.List;
import java.util.Map;

public interface PersistentConnection {

  void initialize();

  // Lifecycle

  void shutdown();

  void refreshAuthToken();

  // Auth

  void refreshAuthToken(String token);

  void listen(
      List path,
      Map queryParams,
      ListenHashProvider currentHashFn,
      Long tag,
      RequestResultCallback onComplete);

  // Listens

  void unlisten(List path, Map queryParams);

  void purgeOutstandingWrites();

  // Writes

  void put(List path, Object data, RequestResultCallback onComplete);

  void compareAndPut(List path, Object data, String hash, RequestResultCallback onComplete);

  void merge(List path, Map data, RequestResultCallback onComplete);

  void onDisconnectPut(List path, Object data, RequestResultCallback onComplete);

  // Disconnects

  void onDisconnectMerge(
      List path, Map updates, RequestResultCallback onComplete);

  void onDisconnectCancel(List path, RequestResultCallback onComplete);

  void interrupt(String reason);

  // Connection management

  void resume(String reason);

  boolean isInterrupted(String reason);

  interface Delegate {

    void onDataUpdate(List path, Object message, boolean isMerge, Long optTag);

    void onRangeMergeUpdate(List path, List merges, Long optTag);

    void onConnect();

    void onDisconnect();

    void onAuthStatus(boolean authOk);

    void onServerInfoUpdate(Map updates);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy