
com.alachisoft.ncache.client.internal.command.QueueEnqueueCommand Maven / Gradle / Ivy
package com.alachisoft.ncache.client.internal.command;
import Alachisoft.NCache.Common.Caching.UserBinaryObject;
import Alachisoft.NCache.Common.DataTypes.Queue.QueueEnqueueOperation;
import Alachisoft.NCache.Common.JSON.ExtendedJsonValueBase;
import com.alachisoft.ncache.common.protobuf.CollectionItemProtocol;
import com.alachisoft.ncache.common.protobuf.QueueCommandProtocol;
import com.alachisoft.ncache.common.protobuf.QueueEnqueueProtocol;
import com.google.protobuf.ByteString;
import java.nio.charset.StandardCharsets;
import java.util.List;
public class QueueEnqueueCommand extends QueueCommandBase {
private QueueEnqueueOperation.OpType _operationType;
private List _collection;
private QueueEnqueueProtocol.QueueEnqueue.Builder _queueEnqueue;
public QueueEnqueueCommand(QueueEnqueueOperation operation)
{
super.name = "QueueEnqueue";
super.key = operation.getName();
_writeThruOption = operation.getWriteThruOptions();
_lockId = (String)operation.getLockId();
_lockTimeout = operation.getLockTimeout();
_operationType = operation.getOperationType();
_collection = operation.getCollection();
}
@Override
public RequestType getCommandRequestType()
{
return RequestType.AtomicWrite;
}
@Override
public CommandType getCommandType()
{
return CommandType.DATA_TYPE;
}
@Override
protected void createCommand()
{
_queueEnqueue = QueueEnqueueProtocol.QueueEnqueue.newBuilder();
if (_collection != null)
{
UserBinaryObject valueObject = UserBinaryObject.createUserBinaryObject(_collection.get(0).toJson().getBytes(StandardCharsets.UTF_8));
CollectionItemProtocol.CollectionItem.Builder valueItem = CollectionItemProtocol.CollectionItem.newBuilder();
for(byte[] bytes : valueObject.getDataList())
valueItem.addData(ByteString.copyFrom(bytes));
_queueEnqueue.setItem(valueItem);
}
switch (_operationType)
{
case Enqueue:
_queueEnqueue.setOperationType(QueueEnqueueProtocol.QueueEnqueue.OperationType.Enqueue);
break;
case TryEnqueueMilliSeconds:
_queueEnqueue.setOperationType(QueueEnqueueProtocol.QueueEnqueue.OperationType.TryEnqueueMilliSeconds);
break;
case TryEnqueueTimespan:
_queueEnqueue.setOperationType(QueueEnqueueProtocol.QueueEnqueue.OperationType.TryEnqueueTimespan);
break;
}
super.createCommand();
_queueCommandBuilder.setType(QueueCommandProtocol.QueueCommand.Type.QUEUE_ENQUEUE);
_queueCommandBuilder.setQueueEnqueue(_queueEnqueue);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy