view src/main/java/jp/ac/u_ryukyu/treevnc/SendCheckDelay.java @ 380:aef5cbdd84ab

Fix compare SerialNumber flag
author innparusu
date Wed, 02 Sep 2015 17:33:06 +0900
parents 42fcc9419498
children
line wrap: on
line source

package jp.ac.u_ryukyu.treevnc;

import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.LinkedList;

import com.glavsoft.rfb.encoding.EncodingType;


public class SendCheckDelay implements Runnable {
    
    private TreeRFBProto rfb;

    public SendCheckDelay(TreeRFBProto rfb) {
        this.rfb = rfb;
    }

    public void sendCheckDelay() {
        LinkedList<ByteBuffer> checkdelay = new LinkedList<ByteBuffer>();
        long time = System.currentTimeMillis();
        checkdelay.add(new CheckDelay(0, 0, 0, 0, time, EncodingType.CHECK_DELAY).getMessage());
        if (rfb.isAddSerialNum()) {
            rfb.addSerialNumber(checkdelay);
        }
        rfb.multicastqueue.put(checkdelay);
        System.out.println(time + " : send checkDelay");
    }
    
    public void run() {
        for (;;) {
            long sendTime = 5000; // send check delay timing (5 sec)
            try {
                synchronized (this) {
                    wait(sendTime);
                    sendCheckDelay();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
                System.out.println("any thread has interrupted the current thread");
            }
        }
    }

}