package chat.persistence; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import chat.module.FriendRequstBucket; public class MemoryMessagesStore { private ReadWriteLock mLock = new ReentrantReadWriteLock(); private static FriendRequstBucket friendRequstBucket; private Lock mReadLock = mLock.readLock(); private Lock mWriteLock = mLock.writeLock(); public long insertUserMessages(String sender, int conversationType, String target, int line, int messageContentType, String user, long messageId) { // messageId是全局的,messageSeq是跟个人相关的,理论上messageId的增长数度远远大于seq。 // 考虑到一种情况,当服务器发生变化,用户发生迁移后,messageSeq还需要保持有序。 要么把Seq持久化,要么在迁移后Seq取一个肯定比以前更大的数字(这个数字就是messageId) // 这里选择使用后面一种情况 long messageSeq = 0; mWriteLock.lock(); try { } finally { mWriteLock.unlock(); } //databaseStore.persistUserMessage(user, messageId, messageSeq); return messageSeq; } }