HONEYCOMB-106 - Support for generic cache management
[honeycomb.git] / v3po / notification / api / src / main / java / io / fd / honeycomb / v3po / notification / ManagedNotificationProducer.java
1 /*
2  * Copyright (c) 2016 Cisco and/or its affiliates.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package io.fd.honeycomb.v3po.notification;
17
18 import com.google.common.annotations.Beta;
19 import javax.annotation.Nonnull;
20
21 /**
22  * Special notification producer that is capable of starting and stopping the notification stream
23  */
24 @Beta
25 public interface ManagedNotificationProducer extends NotificationProducer {
26
27     /**
28      * Start notification stream managed by this producer.
29      *
30      * @param collector Notification collector expected to collect produced notifications
31      */
32     void start(@Nonnull NotificationCollector collector);
33
34     /**
35      * Stop notification stream managed by this producer.
36      */
37     void stop();
38 }