/*
 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

import <Clock.idl4>;

connector ClockServerInit {
    from Event with 0 threads;
    to Event with 0 threads;
}

connector ClockServerClientInit {
    from Event with 0 threads;
    to Event with 0 threads;
}
