/*
 * This file Copyright (C) 2015 Mnemosyne LLC
 *
 * It may be used under the GNU GPL versions 2 or 3
 * or any future license endorsed by Mnemosyne LLC.
 *
 */

#pragma once

struct tr_error;

typedef struct dtr_callbacks
{
    int (* on_start)(void* arg, bool foreground);
    void (* on_stop)(void* arg);
    void (* on_reconfigure)(void* arg);
}
dtr_callbacks;

bool dtr_daemon(dtr_callbacks const* cb, void* cb_arg, bool foreground, int* exit_code, struct tr_error** error);