/* * Quasseldroid - Quassel client for Android * * Copyright (c) 2019 Janne Koschinski * Copyright (c) 2019 The Quassel Project * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License version 3 as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <http://www.gnu.org/licenses/>. */ package de.kuschku.libquassel.session import de.kuschku.libquassel.protocol.message.SignalProxyMessage import org.threeten.bp.Instant interface HeartBeatRunner { fun setCloseCallback(callback: (() -> Unit)?) fun setHeartbeatDispatchCallback(callback: ((SignalProxyMessage.HeartBeat) -> Unit)?) fun start() fun end() fun setLastHeartBeatReply(time: Instant) companion object { const val TIMEOUT = 120_000L const val DELAY = 30_000L } }