Esempio n. 1
0
        public void MessagesTest()
        {
            var from = new Jid("jid1", "s", "R1");
            var to   = new Jid("jid2", "s", "R2");
            var m1   = new Message(to, from, "to --> from");
            var m2   = new Message(from, to, "from --> to");

            store.SaveMessages(new[] { m1, m2 });

            var messages = store.GetMessages(from, to, DateTime.MinValue, DateTime.MaxValue, 2);

            Assert.AreEqual(messages.Length, 2);
            Assert.AreEqual(m1.From, messages[0].From);
            Assert.AreEqual(m2.From, messages[1].From);

            messages = store.GetMessages(to, from, DateTime.MinValue, DateTime.MaxValue, 2);
            Assert.AreEqual(messages.Length, 2);
            Assert.AreEqual(m1.From, messages[0].From);
            Assert.AreEqual(m2.From, messages[1].From);
        }
        public void FlushMessageBuffer()
        {
            Message[] buffercopy = null;
            lock (messageBuffer)
            {
                buffercopy = messageBuffer.ToArray();
                messageBuffer.Clear();
            }

            if (buffercopy.Length == 0)
            {
                return;
            }

            try
            {
                archiveStore.SaveMessages(buffercopy);
                log.DebugFormat("Flush messages buffer, count: {0}", buffercopy.Length);
            }
            catch (Exception ex)
            {
                log.ErrorFormat("Error flush messages buffer, count: {0}, exception: {1}", buffercopy.Length, ex);
            }
        }