protected ulong Save(Message message)
{
if (message == null)
{
throw new ArgumentNullException("message");
}
// GetTopic will return a topic for the given key. If topic exists and is Dying,
// it will revive it and mark it as NoSubscriptions
Topic topic = GetTopic(message.Key);
// Mark the topic as used so it doesn't immediately expire (if it was in that state before).
topic.MarkUsed();
return(topic.Store.Add(message));
}