view src/main/java/alice/datasegment/CompressedRemoteDataSegmentManager.java @ 547:e91a574b69de dispose

remove index
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 18 Aug 2015 16:15:17 +0900
parents 8f949fa80653
children
line wrap: on
line source

package alice.datasegment;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.SocketChannel;
import java.util.concurrent.LinkedBlockingQueue;

import org.apache.log4j.Logger;

import alice.codesegment.CodeSegment;
import alice.daemon.Connection;
import alice.daemon.IncomingTcpConnection;
import alice.daemon.OutboundTcpConnection;

public class CompressedRemoteDataSegmentManager extends DataSegmentManager {
    RemoteDataSegmentManager manager;

    public CompressedRemoteDataSegmentManager(RemoteDataSegmentManager manager) {
        this.manager = manager;
    }

    /**
     * send put command to target DataSegment
     */
    @Override
    public void put(String key, ReceiveData rData, boolean quickFlag) {
        if (!rData.compressed()){
            try {
                rData.zip();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, null, null, "");
        cmd.setCompressFlag(true);

        manager.put1(quickFlag, cmd);
    }

    @Override
    public void update(String key, ReceiveData rData, boolean quickFlag) {
        if (!rData.compressed()){
            try {
                rData.zip();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, null, null, "");
        cmd.setCompressFlag(true);

        manager.put1(quickFlag, cmd);
    }

    @Override
    public void take(Receiver receiver, CodeSegment cs, boolean quickFlag) {
        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, 0, replyQueue, cs, null);
        cmd.setCompressFlag(true);

        manager.take1(quickFlag, cmd);
    }

    @Override
    public void peek(Receiver receiver, CodeSegment cs, boolean quickFlag) {
        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, 0, replyQueue, cs, null);
        cmd.setCompressFlag(true);

        manager.take1(quickFlag, cmd);
    }

    @Override
    public void remove(String key) {
        manager.remove(key);
    }

    @Override
    public void finish() {
        manager.finish();
    }

    @Override
    public void ping(String returnKey) {
        manager.ping(returnKey);
    }

    @Override
    public void response(String returnKey) {
        manager.response(returnKey);
    }

    @Override
    public void close() {
        manager.close();
    }

    @Override
    public void shutdown() {
        manager.shutdown();
    }

    @Override
    public void setSendError(boolean b) {
        manager.setSendError(b);
    }

}