当前位置: 首页>>代码示例>>Java>>正文


Java XByteBuffer.createDataPackage方法代码示例

本文整理汇总了Java中org.apache.catalina.tribes.io.XByteBuffer.createDataPackage方法的典型用法代码示例。如果您正苦于以下问题:Java XByteBuffer.createDataPackage方法的具体用法?Java XByteBuffer.createDataPackage怎么用?Java XByteBuffer.createDataPackage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.catalina.tribes.io.XByteBuffer的用法示例。


在下文中一共展示了XByteBuffer.createDataPackage方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: broadcast

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
@Override
public void broadcast(ChannelMessage message) throws ChannelException {
    if (impl==null || (impl.startLevel & Channel.MBR_TX_SEQ)!=Channel.MBR_TX_SEQ )
        throw new ChannelException("Multicast send is not started or enabled.");
    
    byte[] data = XByteBuffer.createDataPackage((ChannelData)message);
    if (data.length>McastServiceImpl.MAX_PACKET_SIZE) {
        throw new ChannelException("Packet length["+data.length+"] exceeds max packet size of "+McastServiceImpl.MAX_PACKET_SIZE+" bytes.");
    }
    DatagramPacket packet = new DatagramPacket(data,0,data.length);
    try {
        impl.send(false, packet);
    } catch (Exception x) {
        throw new ChannelException(x);
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:17,代码来源:McastService.java

示例2: broadcast

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
@Override
public void broadcast(ChannelMessage message) throws ChannelException {
	if (impl == null || (impl.startLevel & Channel.MBR_TX_SEQ) != Channel.MBR_TX_SEQ)
		throw new ChannelException("Multicast send is not started or enabled.");

	byte[] data = XByteBuffer.createDataPackage((ChannelData) message);
	if (data.length > McastServiceImpl.MAX_PACKET_SIZE) {
		throw new ChannelException("Packet length[" + data.length + "] exceeds max packet size of "
				+ McastServiceImpl.MAX_PACKET_SIZE + " bytes.");
	}
	DatagramPacket packet = new DatagramPacket(data, 0, data.length);
	try {
		impl.send(false, packet);
	} catch (Exception x) {
		throw new ChannelException(x);
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:18,代码来源:McastService.java

示例3: main

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
    Member mbr = new MemberImpl("localhost", 9999, 0);
    ChannelData data = new ChannelData();
    data.setAddress(mbr);
    byte[] buf = new byte[8192 * 4];
    data.setMessage(new XByteBuffer(buf, false));
    buf = XByteBuffer.createDataPackage(data);
    len = buf.length;
    NioReceiver receiver = new NioReceiver();
    receiver.setPort(9999);
    receiver.setHost("localhost");
    MyList list = new MyList();
    receiver.setMessageListener(list);
    receiver.start();
    System.out.println("Listening on 9999");
    while (true) {
        try {
            synchronized (mutex) {
                mutex.wait(5000);
                if ( start != 0 ) {
                    System.out.println("Throughput " + df.format(mb / seconds) + " MB/seconds, messages "+count+" accepts "+accept+", total "+mb+" MB.");
                }
            }
        }catch (Throwable x) {
            x.printStackTrace();
        }
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:29,代码来源:SocketNioReceive.java

示例4: sendMessage

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
@Override
public synchronized void sendMessage(Member[] destination, ChannelMessage msg) throws ChannelException {
    byte[] data = XByteBuffer.createDataPackage((ChannelData)msg);
    BioSender[] senders = setupForSend(destination);
    ChannelException cx = null;
    for ( int i=0; i<senders.length; i++ ) {
        try {
            senders[i].sendMessage(data,(msg.getOptions()&Channel.SEND_OPTIONS_USE_ACK)==Channel.SEND_OPTIONS_USE_ACK);
        } catch (Exception x) {
            if (cx == null) cx = new ChannelException(x);
            cx.addFaultyMember(destination[i],x);
        }
    }
    if (cx!=null ) throw cx;
}
 
开发者ID:deathspeeder,项目名称:class-guard,代码行数:16,代码来源:MultipointBioSender.java

示例5: memberAlive

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
protected static boolean memberAlive(Member mbr, byte[] msgData,
                                     boolean sendTest, boolean readTest,
                                     long readTimeout, long conTimeout,
                                     int optionFlag) {
    //could be a shutdown notification
    if ( Arrays.equals(mbr.getCommand(),Member.SHUTDOWN_PAYLOAD) ) return false;

    Socket socket = new Socket();
    try {
        InetAddress ia = InetAddress.getByAddress(mbr.getHost());
        InetSocketAddress addr = new InetSocketAddress(ia, mbr.getPort());
        socket.setSoTimeout((int)readTimeout);
        socket.connect(addr, (int) conTimeout);
        if ( sendTest ) {
            ChannelData data = new ChannelData(true);
            data.setAddress(mbr);
            data.setMessage(new XByteBuffer(msgData,false));
            data.setTimestamp(System.currentTimeMillis());
            int options = optionFlag | Channel.SEND_OPTIONS_BYTE_MESSAGE;
            if ( readTest ) options = (options | Channel.SEND_OPTIONS_USE_ACK);
            else options = (options & (~Channel.SEND_OPTIONS_USE_ACK));
            data.setOptions(options);
            byte[] message = XByteBuffer.createDataPackage(data);
            socket.getOutputStream().write(message);
            if ( readTest ) {
                int length = socket.getInputStream().read(message);
                return length > 0;
            }
        }//end if
        return true;
    } catch ( SocketTimeoutException sx) {
        //do nothing, we couldn't connect
    } catch ( ConnectException cx) {
        //do nothing, we couldn't connect
    }catch (Exception x ) {
        log.error("Unable to perform failure detection check, assuming member down.",x);
    } finally {
        try {socket.close(); } catch ( Exception ignore ){}
    }
    return false;
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:42,代码来源:TcpFailureDetector.java

示例6: main

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
    Selector selector;
    synchronized (Selector.class) {
        // Selector.open() isn't thread safe
        // http://bugs.sun.com/view_bug.do?bug_id=6427854
        // Affects 1.6.0_29, fixed in 1.7.0_01
        selector = Selector.open();
    }
    Member mbr = new MemberImpl("localhost", 9999, 0);
    ChannelData data = new ChannelData();
    data.setOptions(Channel.SEND_OPTIONS_BYTE_MESSAGE);
    data.setAddress(mbr);
    byte[] buf = new byte[8192 * 4];
    data.setMessage(new XByteBuffer(buf,false));
    buf = XByteBuffer.createDataPackage(data);
    int len = buf.length;
    BigDecimal total = new BigDecimal((double)0);
    BigDecimal bytes = new BigDecimal((double)len);
    NioSender sender = new NioSender();
    sender.setDestination(mbr);
    sender.setDirectBuffer(true);
    sender.setSelector(selector);
    sender.setTxBufSize(1024*1024);
    sender.connect();
    sender.setMessage(buf);
    System.out.println("Writing to 9999");
    long start = 0;
    double mb = 0;
    boolean first = true;
    int count = 0;
    DecimalFormat df = new DecimalFormat("##.00");
    while (count<100000) {
        if (first) {
            first = false;
            start = System.currentTimeMillis();
        }
        sender.setMessage(buf);
        int selectedKeys = 0;
        try {
            selectedKeys = selector.select(0);
        } catch (Exception e) {
            e.printStackTrace();
            continue;
        }

        if (selectedKeys == 0) {
            continue;
        }

        Iterator<SelectionKey> it = selector.selectedKeys().iterator();
        while (it.hasNext()) {
            SelectionKey sk = it.next();
            it.remove();
            try {
                int readyOps = sk.readyOps();
                sk.interestOps(sk.interestOps() & ~readyOps);
                if (sender.process(sk, false)) {
                    total = total.add(bytes);
                    sender.reset();
                    sender.setMessage(buf);
                    mb += ( (double) len) / 1024 / 1024;
                    if ( ( (++count) % 10000) == 0) {
                        long time = System.currentTimeMillis();
                        double seconds = ( (double) (time - start)) / 1000;
                        System.out.println("Throughput " + df.format(mb / seconds) + " MB/seconds, total "+mb+" MB, total "+total+" bytes.");
                    }
                }

            } catch (Throwable t) {
                t.printStackTrace();
                return;
            }
        }
        selector.selectedKeys().clear();
    }
    System.out.println("Complete, sleeping 15 seconds");
    Thread.sleep(15000);
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:79,代码来源:SocketNioSend.java

示例7: memberAlive

import org.apache.catalina.tribes.io.XByteBuffer; //导入方法依赖的package包/类
protected static boolean memberAlive(Member mbr, byte[] msgData, boolean sendTest, boolean readTest,
		long readTimeout, long conTimeout, int optionFlag) {
	// could be a shutdown notification
	if (Arrays.equals(mbr.getCommand(), Member.SHUTDOWN_PAYLOAD))
		return false;

	Socket socket = new Socket();
	try {
		InetAddress ia = InetAddress.getByAddress(mbr.getHost());
		InetSocketAddress addr = new InetSocketAddress(ia, mbr.getPort());
		socket.setSoTimeout((int) readTimeout);
		socket.connect(addr, (int) conTimeout);
		if (sendTest) {
			ChannelData data = new ChannelData(true);
			data.setAddress(mbr);
			data.setMessage(new XByteBuffer(msgData, false));
			data.setTimestamp(System.currentTimeMillis());
			int options = optionFlag | Channel.SEND_OPTIONS_BYTE_MESSAGE;
			if (readTest)
				options = (options | Channel.SEND_OPTIONS_USE_ACK);
			else
				options = (options & (~Channel.SEND_OPTIONS_USE_ACK));
			data.setOptions(options);
			byte[] message = XByteBuffer.createDataPackage(data);
			socket.getOutputStream().write(message);
			if (readTest) {
				int length = socket.getInputStream().read(message);
				return length > 0;
			}
		} // end if
		return true;
	} catch (SocketTimeoutException sx) {
		// do nothing, we couldn't connect
	} catch (ConnectException cx) {
		// do nothing, we couldn't connect
	} catch (Exception x) {
		log.error("Unable to perform failure detection check, assuming member down.", x);
	} finally {
		try {
			socket.close();
		} catch (Exception ignore) {
		}
	}
	return false;
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:46,代码来源:TcpFailureDetector.java


注:本文中的org.apache.catalina.tribes.io.XByteBuffer.createDataPackage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。