Exemple #1
0
        private ReConfigChunk makeSSNResets()
        {
            ReConfigChunk reply = new ReConfigChunk();             // create a new thing

            Logger.Debug("closing streams n=" + listOfStreamsToReset.Count);
            List <int> streamsL = new List <int>();

            lock (listOfStreamsToReset) {
                foreach (var s in listOfStreamsToReset)
                {
                    if (s.InboundIsOpen())
                    {
                        streamsL.Add(s.getNum());
                    }
                }
            }
            int[] streams = streamsL.ToArray();
            if (streams.Length > 0)
            {
                OutgoingSSNResetRequestParameter rep = new OutgoingSSNResetRequestParameter(nextNearNo(), farSeqno - 1, assoc.getNearTSN());
                rep.setStreams(streams);
                reply.addParam(rep);
            }
            streamsL.Clear();
            lock (listOfStreamsToReset) {
                foreach (var s in listOfStreamsToReset)
                {
                    if (s.OutboundIsOpen())
                    {
                        streamsL.Add(s.getNum());
                    }
                }
            }
            streams = streamsL.ToArray();
            if (streams.Length > 0)
            {
                IncomingSSNResetRequestParameter rep = new IncomingSSNResetRequestParameter(nextNearNo());
                rep.setStreams(streams);
                reply.addParam(rep);
            }
            Logger.Debug("reconfig chunk is " + reply.ToString());
            return(reply);
        }