Package com.github.ddth.pubsub.impl
Class AbstractPubSubHub<ID,DATA>
- java.lang.Object
-
- com.github.ddth.pubsub.impl.AbstractPubSubHub<ID,DATA>
-
- All Implemented Interfaces:
IPubSubHub<ID,DATA>,AutoCloseable
- Direct Known Subclasses:
BaseRedisPubSubHub,InmemPubSubHub,MongodbPubSubHub
public abstract class AbstractPubSubHub<ID,DATA> extends Object implements IPubSubHub<ID,DATA>, AutoCloseable
Abstract implementation ofIPubSubHub.- Since:
- 0.7.0
- Author:
- Thanh Ba Nguyen
-
-
Constructor Summary
Constructors Constructor Description AbstractPubSubHub()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()IMessage<ID,DATA>createMessage()Create a new, empty message.IMessage<ID,DATA>createMessage(DATA data)Create a new message, supplying its initial data.IMessage<ID,DATA>createMessage(ID id, DATA data)Create a new message, supplying its initial id and data.protected IMessage<ID,DATA>deserialize(byte[] msgData)Deserialize a message.protected <T extends IMessage<ID,DATA>>
Tdeserialize(byte[] msgData, Class<T> clazz)Deserialize a message.voiddestroy()Clean-up method.IMessageFactory<ID,DATA>getMessageFactory()Factory to create messages.com.github.ddth.commons.serialization.ISerDesergetSerDeser()Message serializer/deserializer.AbstractPubSubHub<ID,DATA>init()Initializing method.protected byte[]serialize(IMessage<ID,DATA> msg)Serialize a queue message to store in Redis.AbstractPubSubHub<ID,DATA>setMessageFactory(IMessageFactory<ID,DATA> messageFactory)Factory to create messages.AbstractPubSubHub<ID,DATA>setSerDeser(com.github.ddth.commons.serialization.ISerDeser serDeser)Message serializer/deserializer.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.github.ddth.pubsub.IPubSubHub
publish, subscribe, unsubscribe
-
-
-
-
Method Detail
-
getMessageFactory
public IMessageFactory<ID,DATA> getMessageFactory()
Factory to create messages.- Returns:
-
setMessageFactory
public AbstractPubSubHub<ID,DATA> setMessageFactory(IMessageFactory<ID,DATA> messageFactory)
Factory to create messages.- Parameters:
messageFactory-- Returns:
-
getSerDeser
public com.github.ddth.commons.serialization.ISerDeser getSerDeser()
Message serializer/deserializer.- Returns:
- Since:
- 1.0.0
-
setSerDeser
public AbstractPubSubHub<ID,DATA> setSerDeser(com.github.ddth.commons.serialization.ISerDeser serDeser)
Message serializer/deserializer.- Parameters:
serDeser-- Returns:
- Since:
- 1.0.0
-
init
public AbstractPubSubHub<ID,DATA> init()
Initializing method.- Returns:
-
destroy
public void destroy()
Clean-up method.
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable
-
createMessage
public IMessage<ID,DATA> createMessage()
Create a new, empty message.- Specified by:
createMessagein interfaceIPubSubHub<ID,DATA>- Returns:
-
createMessage
public IMessage<ID,DATA> createMessage(DATA data)
Create a new message, supplying its initial data.- Specified by:
createMessagein interfaceIPubSubHub<ID,DATA>- Returns:
-
createMessage
public IMessage<ID,DATA> createMessage(ID id, DATA data)
Create a new message, supplying its initial id and data.- Specified by:
createMessagein interfaceIPubSubHub<ID,DATA>- Returns:
-
serialize
protected byte[] serialize(IMessage<ID,DATA> msg)
Serialize a queue message to store in Redis.- Parameters:
msg-- Returns:
-
deserialize
protected IMessage<ID,DATA> deserialize(byte[] msgData)
Deserialize a message.- Parameters:
msgData-- Returns:
-
-