com.tesora.dve.db.mysql.portal.protocol.MSPComInitDBRequestMessage.java Source code

Java tutorial

Introduction

Here is the source code for com.tesora.dve.db.mysql.portal.protocol.MSPComInitDBRequestMessage.java

Source

package com.tesora.dve.db.mysql.portal.protocol;

/*
 * #%L
 * Tesora Inc.
 * Database Virtualization Engine
 * %%
 * Copyright (C) 2011 - 2014 Tesora Inc.
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License, version 3,
 * as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 * #L%
 */

import io.netty.buffer.ByteBuf;

import java.nio.charset.Charset;

public class MSPComInitDBRequestMessage extends BaseMSPMessage<String> {
    public static final MSPComInitDBRequestMessage PROTOTYPE = new MSPComInitDBRequestMessage();
    Charset decodingCharset;

    protected MSPComInitDBRequestMessage() {
        super();
    }

    protected MSPComInitDBRequestMessage(ByteBuf backing) {
        super(backing);
    }

    @Override
    public byte getMysqlMessageType() {
        return (byte) 0x02;
    }

    @Override
    public MSPComInitDBRequestMessage newPrototype(ByteBuf source) {
        source = source.slice();
        return new MSPComInitDBRequestMessage(source);
    }

    public void setDecodingCharset(Charset javaCharset) {
        this.decodingCharset = javaCharset;
    }

    public String getInitialDatabase() {
        return readState();
    }

    @Override
    protected String unmarshall(ByteBuf source) {
        if (decodingCharset == null)
            throw new IllegalStateException(
                    "initDB request cannot unmarshall a packet without a decoding charset.");
        source.skipBytes(1);//skip type field.
        return source.toString(decodingCharset);
    }

    @Override
    protected void marshall(String state, ByteBuf destination) {
        throw new UnsupportedOperationException();
    }

}