Specialize protocol-framework to netconf
[netconf.git] / netconf / netconf-api / src / main / java / org / opendaylight / netconf / api / NetconfSession.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  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.netconf.api;
9
10 import io.netty.channel.ChannelFuture;
11 import java.io.Closeable;
12
13 /**
14  * Protocol Session represents the finite state machine in underlying protocol, including timers and its purpose is to
15  * create a connection between server and client. Session is automatically started, when TCP connection is created, but
16  * can be stopped manually. If the session is up, it has to redirect messages to/from user. Handles also malformed
17  * messages and unknown requests.
18  *
19  * <p>
20  * This interface should be implemented by a final class representing a protocol specific session.
21  */
22 public interface NetconfSession extends Closeable {
23
24     ChannelFuture sendMessage(NetconfMessage message);
25
26     @Override
27     void close();
28 }