Switch to using SseEventSink
[netconf.git] / restconf / restconf-nb-rfc8040 / src / main / java / org / opendaylight / restconf / nb / rfc8040 / services / wrapper / ServicesNotifWrapper.java
1 /*
2  * Copyright (c) 2020 Lumina Networks, Inc. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.restconf.nb.rfc8040.services.wrapper;
9
10 import javax.ws.rs.Path;
11 import javax.ws.rs.core.UriInfo;
12 import javax.ws.rs.sse.Sse;
13 import javax.ws.rs.sse.SseEventSink;
14 import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfDataStreamService;
15 import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataStreamServiceImpl;
16 import org.opendaylight.restconf.nb.rfc8040.streams.sse.SSEInitializer;
17
18 /**
19  * Wrapper for service.
20  * <ul>
21  * <li>{@link RestconfDataStreamService}
22  * </ul>
23  */
24 @Path("/")
25 public final class ServicesNotifWrapper implements RestconfDataStreamService {
26
27     private final RestconfDataStreamService delegRestStream;
28
29     private ServicesNotifWrapper(final RestconfDataStreamService delegRestStream) {
30         this.delegRestStream = delegRestStream;
31     }
32
33     public static ServicesNotifWrapper newInstance(final SSEInitializer configuration) {
34         RestconfDataStreamService delegRestStream = new RestconfDataStreamServiceImpl(configuration);
35         return new ServicesNotifWrapper(delegRestStream);
36     }
37
38     @Override
39     public void getSSE(final String identifier, final UriInfo uriInfo, final SseEventSink sink, final Sse sse) {
40         this.delegRestStream.getSSE(identifier, uriInfo, sink, sse);
41     }
42 }