diff options
author | Moxie Marlinspike <moxie@thoughtcrime.org> | 2015-03-04 18:49:20 -0800 |
---|---|---|
committer | Moxie Marlinspike <moxie@thoughtcrime.org> | 2015-03-04 18:49:20 -0800 |
commit | 7262e6970b86fe0a23ee48afca7bba37bcad1cdf (patch) | |
tree | e216b2b2895647bf02a1e39b365c8daa6a44ae37 /java/src/main/java/org/whispersystems/libaxolotl/state/impl/InMemoryPreKeyStore.java | |
parent | af48198d9c683bed0545eb9bf8469a6dccf2cdd3 (diff) |
Move in memory data structures into project.
Diffstat (limited to 'java/src/main/java/org/whispersystems/libaxolotl/state/impl/InMemoryPreKeyStore.java')
-rw-r--r-- | java/src/main/java/org/whispersystems/libaxolotl/state/impl/InMemoryPreKeyStore.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/java/src/main/java/org/whispersystems/libaxolotl/state/impl/InMemoryPreKeyStore.java b/java/src/main/java/org/whispersystems/libaxolotl/state/impl/InMemoryPreKeyStore.java new file mode 100644 index 00000000..80651f21 --- /dev/null +++ b/java/src/main/java/org/whispersystems/libaxolotl/state/impl/InMemoryPreKeyStore.java @@ -0,0 +1,42 @@ +package org.whispersystems.libaxolotl.state.impl; + +import org.whispersystems.libaxolotl.InvalidKeyIdException; +import org.whispersystems.libaxolotl.state.PreKeyRecord; +import org.whispersystems.libaxolotl.state.PreKeyStore; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +public class InMemoryPreKeyStore implements PreKeyStore { + + private final Map<Integer, byte[]> store = new HashMap<>(); + + @Override + public PreKeyRecord loadPreKey(int preKeyId) throws InvalidKeyIdException { + try { + if (!store.containsKey(preKeyId)) { + throw new InvalidKeyIdException("No such prekeyrecord!"); + } + + return new PreKeyRecord(store.get(preKeyId)); + } catch (IOException e) { + throw new AssertionError(e); + } + } + + @Override + public void storePreKey(int preKeyId, PreKeyRecord record) { + store.put(preKeyId, record.serialize()); + } + + @Override + public boolean containsPreKey(int preKeyId) { + return store.containsKey(preKeyId); + } + + @Override + public void removePreKey(int preKeyId) { + store.remove(preKeyId); + } +} |