/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.redPandaLib.database; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLTransactionRollbackException; import java.util.ArrayList; import java.util.HashMap; import org.redPandaLib.core.Channel; import org.redPandaLib.core.messages.RawMsg; import org.redPandaLib.core.messages.TextMessageContent; import org.redPandaLib.crypt.ECKey; /** * * @author rflohr */ public interface MessageStore { public void saveMsg(RawMsg msg) throws SQLTransactionRollbackException; public void quit(); public void showTablePubkey(); public void showTableMessage(); public int containsMsg(RawMsg m); public int getMsgId(RawMsg m); public RawMsg getMessageById(int message_id); public ResultSet getAllMessagesForSync(long from, long to, long peer_id); public int getPubkeyId(ECKey key); public Connection getConnection(); public ArrayList<TextMessageContent> getMessageContentsForPubkey(byte[] pubKey, long from, long to); public ArrayList<RawMsg> getMessagesForPubkey(byte[] pubKey, long from, int to); public boolean addDecryptedContent(int pubkey_id, int message_type, long timestamp, byte[] decryptedContent, long identity, boolean fromMe, int nonce, byte public_type); public void addDecryptedContent(int pubkey_id, int message_id, int message_type, long timestamp, byte[] decryptedContent, long identity, boolean fromMe, int nonce, byte public_type); public void addStick(int pubkey_id, int message_id, double difficulty, long validTill); public void showTableMessageContent(); public int getMessageCount(); public int getMessageCountToVerify(); public void commitDatabase(); public void removeOldMessages(long timestamp); public void removeOldMessagesDecryptedContent(long timestamp); public void addMsgIntroducedToMe(long peer_id, int message_id); public void addMsgIntroducedToHim(long peer_id, int message_id); public int msgCountIntroducedToMe(long peer_id); public int msgCountIntroducedToHim(long peer_id); public int msgsToUser(long peer_id, long from); public void addFilterChannel(long peer_id, int channel_id); public void delFilterChannel(long peer_id, int channel_id); public void clearFilterChannel(long peer_id); public void addMessageToSend(int message_id, int channel_id); public void addMessageToSendToSpecificPeer(int message_id, int peer_id); public boolean removeMessageToSend(long peer_id, int message_id); public boolean removeMessageToSend(long peer_id); public ResultSet getMessagesForBackSync(long time, int cnt); public void resetMessageCounter(); public void checkpoint(); public void addUnreadMessage(long message_id); public void markAsRead(long message_id); public void addKnownChannel(int forChannel, long identity, int fromChannel, int level); public void removeKnownChannelFromIdenity(long identity); public HashMap<ECKey, Integer> getAllKnownChannels(); public void removeKnownChannelForCHannel(int channel_id); public void removeMessagesDecryptedContent(Channel channel); public void removeMessagesDecryptedContent(int pubkey_id); public void moveChannelMessagesToHistory(long olderThan); public int removeMessagesFromChannel(int pubkey_id, byte public_type, long timestamp); public Long getLatestBlocktime(int pubkeyId); public int getNextMessageId(); public int getNextChannelMessageId(); public void insertPeerConnectionInformation(String ip, int port, int status, long avoidUntil); public void setStatusForPeerConnectionInformation(String ip, int port, int newStatus, long avoidUntil); public ArrayList<DirectMessageStore.IpAndPort> getGoodPeerConnectionInformation(int count); public void deletePeerConnectionInformation(String ip, int port); public void cleanupPeerConnectionInformation(); public int getPeerConnectionInformationSize(); }