package net.johnewart.gearman.common.packets.request;
import net.johnewart.gearman.constants.PacketType;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
public class SetClientId extends RequestPacket {
private AtomicReference<String> clientId;
/**
* Create a SET_CLIENT_ID packet with a random ID
*/
public SetClientId()
{
this(UUID.randomUUID().toString());
}
public SetClientId(String clientId)
{
this.type = PacketType.SET_CLIENT_ID;
this.clientId = new AtomicReference<>(clientId);
}
public SetClientId(byte[] pktdata)
{
super(pktdata);
this.clientId = new AtomicReference<>();
int pOff = 0;
parseString(pOff, clientId);
}
public String getClientId()
{
return clientId.get();
}
@Override
public byte[] toByteArray()
{
return concatByteArrays(getHeader(), clientId.get().getBytes());
}
@Override
public int getPayloadSize()
{
return clientId.get().length();
}
}