/* * (C) Copyright 2015-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Contributors: * ohun@live.cn (夜色) */ package com.mpush.common.message; import com.mpush.api.connection.Connection; import com.mpush.api.protocol.Command; import com.mpush.api.protocol.Packet; import io.netty.buffer.ByteBuf; import java.util.Arrays; import static com.mpush.api.protocol.Command.HANDSHAKE; /** * Created by ohun on 2015/12/27. * * @author ohun@live.cn */ public final class HandshakeOkMessage extends ByteBufMessage { public byte[] serverKey; public int heartbeat; public String sessionId; public long expireTime; public HandshakeOkMessage(Packet message, Connection connection) { super(message, connection); } @Override public void decode(ByteBuf body) { serverKey = decodeBytes(body); heartbeat = decodeInt(body); sessionId = decodeString(body); expireTime = decodeLong(body); } @Override public void encode(ByteBuf body) { encodeBytes(body, serverKey); encodeInt(body, heartbeat); encodeString(body, sessionId); encodeLong(body, expireTime); } public static HandshakeOkMessage from(BaseMessage src) { return new HandshakeOkMessage(src.packet.response(HANDSHAKE), src.connection); } public HandshakeOkMessage setServerKey(byte[] serverKey) { this.serverKey = serverKey; return this; } public HandshakeOkMessage setHeartbeat(int heartbeat) { this.heartbeat = heartbeat; return this; } public HandshakeOkMessage setSessionId(String sessionId) { this.sessionId = sessionId; return this; } public HandshakeOkMessage setExpireTime(long expireTime) { this.expireTime = expireTime; return this; } @Override public String toString() { return "HandshakeOkMessage{" + "expireTime=" + expireTime + ", serverKey=" + Arrays.toString(serverKey) + ", heartbeat=" + heartbeat + ", sessionId='" + sessionId + '\'' + ", packet=" + packet + '}'; } }