// Path: core/src/main/java/fixio/handlers/FixApplication.java
// public interface FixApplication extends ChannelHandler {
// 
//     /**
//      * Invoked after FIX session was successfully established.
//      *
//      * @param ctx current {@link ChannelHandlerContext}
//      * @param msg {@link LogonEvent} message to handle
//      */
//     void onLogon(ChannelHandlerContext ctx, LogonEvent msg);
// 
//     /**
//      * Invoked after FIX session was closed.
//      *
//      * @param ctx current {@link ChannelHandlerContext}
//      * @param msg {@link LogonEvent} message to handle
//      */
//     void onLogout(ChannelHandlerContext ctx, LogoutEvent msg);
// 
//     /**
//      * Invoked when message arrived
//      *
//      * @param ctx current {@link ChannelHandlerContext}
//      * @param msg a {@link FixMessage} to handle
//      * @param out a {@link List} where decoded messages should be added
//      * @throws BusinessRejectException when message can't be accepted
//      * @throws InterruptedException    if interrupted while processing a message
//      */
//     void onMessage(ChannelHandlerContext ctx, FixMessage msg, List<Object> out)
//             throws BusinessRejectException, InterruptedException;
// 
//     /**
//      * Invoked before {@link FixMessageBuilder} is sent.
//      *
//      * @param ctx            current {@link ChannelHandlerContext}
//      * @param messageBuilder a message builder
//      */
//     void beforeSendMessage(ChannelHandlerContext ctx, FixMessageBuilder messageBuilder);
// }
// 
// Path: core/src/main/java/fixio/netty/pipeline/SessionRepository.java
// public interface SessionRepository {
// 
//     FixSession getOrCreateSession(FixMessageHeader header);
// 
//     FixSession getSession(FixMessageHeader header);
// 
//     void removeSession(SessionId sessionId);
// }


import fixio.handlers.FixApplication;
import fixio.netty.pipeline.SessionRepository;
/*
 * Copyright 2014 The FIX.io Project
 *
 * The FIX.io Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package fixio;


/**
 * AbstractFixConnector is base class for {@link FixClient} and {@link FixServer}.
 *
 * @author Konstantin Pavlov
 */
@SuppressWarnings("WeakerAccess")
public abstract class AbstractFixConnector {

    private final FixApplication fixApplication;
// Path: core/src/main/java/fixio/handlers/FixApplication.java
// public interface FixApplication extends ChannelHandler {
// 
//     /**
//      * Invoked after FIX session was successfully established.
//      *
//      * @param ctx current {@link ChannelHandlerContext}
//      * @param msg {@link LogonEvent} message to handle
//      */
//     void onLogon(ChannelHandlerContext ctx, LogonEvent msg);
// 
//     /**
//      * Invoked after FIX session was closed.
//      *
//      * @param ctx current {@link ChannelHandlerContext}
//      * @param msg {@link LogonEvent} message to handle
//      */
//     void onLogout(ChannelHandlerContext ctx, LogoutEvent msg);
// 
//     /**
//      * Invoked when message arrived
//      *
//      * @param ctx current {@link ChannelHandlerContext}
//      * @param msg a {@link FixMessage} to handle
//      * @param out a {@link List} where decoded messages should be added
//      * @throws BusinessRejectException when message can't be accepted
//      * @throws InterruptedException    if interrupted while processing a message
//      */
//     void onMessage(ChannelHandlerContext ctx, FixMessage msg, List<Object> out)
//             throws BusinessRejectException, InterruptedException;
// 
//     /**
//      * Invoked before {@link FixMessageBuilder} is sent.
//      *
//      * @param ctx            current {@link ChannelHandlerContext}
//      * @param messageBuilder a message builder
//      */
//     void beforeSendMessage(ChannelHandlerContext ctx, FixMessageBuilder messageBuilder);
// }
// 
// Path: core/src/main/java/fixio/netty/pipeline/SessionRepository.java
// public interface SessionRepository {
// 
//     FixSession getOrCreateSession(FixMessageHeader header);
// 
//     FixSession getSession(FixMessageHeader header);
// 
//     void removeSession(SessionId sessionId);
// }


// Path: core/src/main/java/fixio/AbstractFixConnector.java
import fixio.handlers.FixApplication;
import fixio.netty.pipeline.SessionRepository;

/*
 * Copyright 2014 The FIX.io Project
 *
 * The FIX.io Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package fixio;


/**
 * AbstractFixConnector is base class for {@link FixClient} and {@link FixServer}.
 *
 * @author Konstantin Pavlov
 */
@SuppressWarnings("WeakerAccess")
public abstract class AbstractFixConnector {

    private final FixApplication fixApplication;
    private final SessionRepository sessionRepository;