diff --git a/src/main/java/net/irext/decoder/model/IRBinary.java b/src/main/java/net/irext/decoder/model/IRBinary.java new file mode 100644 index 0000000..277596e --- /dev/null +++ b/src/main/java/net/irext/decoder/model/IRBinary.java @@ -0,0 +1,42 @@ +package net.irext.decoder.model; + +/** + * Filename: IRBinary.java + * Revised: Date: 2018-12-30 + * Revision: Revision: 1.0 + *

+ * Description: Remote binary in cache + *

+ * Revision log: + * 2018-12-30: created by strawmanbobi + */ +public class IRBinary { + + private Integer id; + private byte[] binary; + + public IRBinary(Integer id, byte[] binary) { + this.id = id; + this.binary = binary; + } + + public IRBinary() { + + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public byte[] getBinary() { + return binary; + } + + public void setBinary(byte[] binary) { + this.binary = binary; + } +} diff --git a/src/main/java/net/irext/decoder/redisrepo/RedisRepository.java b/src/main/java/net/irext/decoder/redisrepo/IDecodeSessionRepository.java similarity index 82% rename from src/main/java/net/irext/decoder/redisrepo/RedisRepository.java rename to src/main/java/net/irext/decoder/redisrepo/IDecodeSessionRepository.java index dc0da4b..477c3f4 100644 --- a/src/main/java/net/irext/decoder/redisrepo/RedisRepository.java +++ b/src/main/java/net/irext/decoder/redisrepo/IDecodeSessionRepository.java @@ -5,7 +5,7 @@ import net.irext.decoder.model.DecodeSession; import java.util.Map; /** - * Filename: RedisRepository.java + * Filename: IDecodeSessionRepository.java * Revised: Date: 2018-12-29 * Revision: Revision: 1.0 *

@@ -14,7 +14,7 @@ import java.util.Map; * Revision log: * 2018-12-29: created by strawmanbobi */ -public interface RedisRepository { +public interface IDecodeSessionRepository { Map findAllDecodeSessions(); diff --git a/src/main/java/net/irext/decoder/redisrepo/IIRBinaryRepository.java b/src/main/java/net/irext/decoder/redisrepo/IIRBinaryRepository.java new file mode 100644 index 0000000..54d8977 --- /dev/null +++ b/src/main/java/net/irext/decoder/redisrepo/IIRBinaryRepository.java @@ -0,0 +1,26 @@ +package net.irext.decoder.redisrepo; + +import net.irext.decoder.model.IRBinary; + +import java.util.Map; + +/** + * Filename: IRRepository.java + * Revised: Date: 2018-12-30 + * Revision: Revision: 1.0 + *

+ * Description: IR binary cache for performance optimization on decoding + *

+ * Revision log: + * 2018-12-30: created by strawmanbobi + */ +public interface IIRBinaryRepository { + + Map findAllIRBinaries(); + + void add(IRBinary irBinary); + + void delete(Integer id); + + IRBinary find(Integer id); +} \ No newline at end of file diff --git a/src/main/java/net/irext/decoder/redisrepo/RedisRepositoryImpl.java b/src/main/java/net/irext/decoder/redisrepo/impl/DecodeSessionRepositoryImpl.java similarity index 72% rename from src/main/java/net/irext/decoder/redisrepo/RedisRepositoryImpl.java rename to src/main/java/net/irext/decoder/redisrepo/impl/DecodeSessionRepositoryImpl.java index 3a58d21..300e7b6 100644 --- a/src/main/java/net/irext/decoder/redisrepo/RedisRepositoryImpl.java +++ b/src/main/java/net/irext/decoder/redisrepo/impl/DecodeSessionRepositoryImpl.java @@ -1,6 +1,7 @@ -package net.irext.decoder.redisrepo; +package net.irext.decoder.redisrepo.impl; import net.irext.decoder.model.DecodeSession; +import net.irext.decoder.redisrepo.IDecodeSessionRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; @@ -10,7 +11,7 @@ import javax.annotation.PostConstruct; import java.util.Map; /** - * Filename: RedisRepositoryImpl.java + * Filename: IDecodeSessionRepositoryImpl.java * Revised: Date: 2018-12-29 * Revision: Revision: 1.0 *

@@ -20,19 +21,19 @@ import java.util.Map; * 2018-12-29: created by strawmanbobi */ @Repository -public class RedisRepositoryImpl implements RedisRepository { +public class DecodeSessionRepositoryImpl implements IDecodeSessionRepository { private static final String KEY = "SESSION_KEY"; private RedisTemplate redisTemplate; private HashOperations hashOperations; @Autowired - public RedisRepositoryImpl(RedisTemplate redisTemplate){ + public DecodeSessionRepositoryImpl(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } @PostConstruct - private void init(){ + private void init() { hashOperations = redisTemplate.opsForHash(); } @@ -44,13 +45,11 @@ public class RedisRepositoryImpl implements RedisRepository { hashOperations.delete(KEY, id); } - public DecodeSession find(final Integer id){ + public DecodeSession find(final Integer id) { return (DecodeSession) hashOperations.get(KEY, id); } - public Map findAllDecodeSessions(){ + public Map findAllDecodeSessions() { return hashOperations.entries(KEY); } - - } \ No newline at end of file diff --git a/src/main/java/net/irext/decoder/redisrepo/impl/IRBinaryRepositoryImpl.java b/src/main/java/net/irext/decoder/redisrepo/impl/IRBinaryRepositoryImpl.java new file mode 100644 index 0000000..a0e7184 --- /dev/null +++ b/src/main/java/net/irext/decoder/redisrepo/impl/IRBinaryRepositoryImpl.java @@ -0,0 +1,55 @@ +package net.irext.decoder.redisrepo.impl; + +import net.irext.decoder.model.IRBinary; +import net.irext.decoder.redisrepo.IIRBinaryRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Repository; + +import javax.annotation.PostConstruct; +import java.util.Map; + +/** + * Filename: IIRBinaryRepositoryImpl.java + * Revised: Date: 2018-12-29 + * Revision: Revision: 1.0 + *

+ * Description: Redis cache class + *

+ * Revision log: + * 2018-12-29: created by strawmanbobi + */ +@Repository +public class IRBinaryRepositoryImpl implements IIRBinaryRepository { + private static final String KEY = "SESSION_KEY"; + + private RedisTemplate redisTemplate; + private HashOperations hashOperations; + + @Autowired + public IRBinaryRepositoryImpl(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; + } + + @PostConstruct + private void init() { + hashOperations = redisTemplate.opsForHash(); + } + + public void add(final IRBinary IRBinary) { + hashOperations.put(KEY, IRBinary.getId(), IRBinary.getBinary()); + } + + public void delete(final Integer id) { + hashOperations.delete(KEY, id); + } + + public IRBinary find(final Integer id) { + return (IRBinary) hashOperations.get(KEY, id); + } + + public Map findAllIRBinaries() { + return hashOperations.entries(KEY); + } +} \ No newline at end of file