public abstract IConnection CreateConnection(ConnectionParameters parameters,
                                              bool insist,
                                              IFrameHandler frameHandler);
 public override IConnection CreateConnection(ConnectionParameters parameters,
                                              bool insist,
                                              IFrameHandler frameHandler)
 {
     return new Connection(parameters, insist, frameHandler);
 }
        public ConnectionBase(ConnectionParameters parameters,
                              bool insist,
                              IFrameHandler frameHandler)
        {
            m_parameters = parameters;
            m_frameHandler = frameHandler;

            m_sessionManager = new SessionManager(this);
            m_session0 = new MainSession(this);
            m_session0.Handler = new MainSession.SessionCloseDelegate(NotifyReceivedCloseOk);
            m_model0 = (ModelBase)Protocol.CreateModel(m_session0);

            StartMainLoop();
            Open(insist);
            StartHeartbeatLoops();
        }