Package com.hazelcast.nio

Examples of com.hazelcast.nio.Packet


    void sendBindRequest(final TcpIpConnection connection, final Address remoteEndPoint, final boolean replyBack) {
        connection.setEndPoint(remoteEndPoint);
        //make sure bind packet is the first packet sent to the end point.
        final BindOperation bind = new BindOperation(ioService.getThisAddress(), remoteEndPoint, replyBack);
        final Data bindData = ioService.toData(bind);
        final Packet packet = new Packet(bindData, portableContext);
        packet.setHeader(Packet.HEADER_OP);
        connection.write(packet);
        //now you can send anything...
    }
View Full Code Here


    private void sendInternal(ClientCallFuture future, ClientConnection connection) {
        connection.registerCallId(future);
        future.setConnection(connection);
        final SerializationService ss = client.getSerializationService();
        final Data data = ss.toData(future.getRequest());
        if (!connection.write(new Packet(data, ss.getPortableContext()))) {
            final int callId = future.getRequest().getCallId();
            connection.deRegisterCallId(callId);
            connection.deRegisterEventHandler(callId);
            future.notify(new TargetNotMemberException("Address : " + connection.getRemoteEndpoint()));
        }
View Full Code Here

            }
        }

        private void doRun() {
            for (;;) {
                Packet task;
                try {
                    task = workQueue.take();
                } catch (InterruptedException e) {
                    if (isShutdown) {
                        return;
View Full Code Here

    private void readPacket() {
        while (buffer.hasRemaining()) {
            if (packet == null) {
                final SerializationService ss = connection.getSerializationService();
                packet = new Packet(ss.getPortableContext());
            }
            boolean complete = packet.readFrom(buffer);
            if (complete) {
                packet.setConn(connection);
                connectionManager.handlePacket(packet);
View Full Code Here

    public void write(Data data) throws IOException {
        final int totalSize = data.totalSize();
        final int bufferSize = SocketOptions.DEFAULT_BUFFER_SIZE_BYTE;
        final ByteBuffer buffer = ByteBuffer.allocate(totalSize > bufferSize ? bufferSize : totalSize);
        final Packet packet = new Packet(data, serializationService.getPortableContext());
        boolean complete = false;
        while (!complete) {
            complete = packet.writeTo(buffer);
            buffer.flip();
            try {
                socketChannelWrapper.write(buffer);
            } catch (Exception e) {
                throw ExceptionUtil.rethrow(e);
View Full Code Here

            buffer.clear();
        }
    }

    public Data read() throws IOException {
        Packet packet = new Packet(serializationService.getPortableContext());
        while (true) {
            if (readFromSocket) {
                int readBytes = socketChannelWrapper.read(readBuffer);
                if (readBytes == -1) {
                    throw new EOFException("Remote socket closed!");
                }
                readBuffer.flip();
            }
            boolean complete = packet.readFrom(readBuffer);
            if (complete) {
                if (readBuffer.hasRemaining()) {
                    readFromSocket = false;
                } else {
                    readBuffer.compact();
                    readFromSocket = true;
                }
                return packet.getData();
            }
            readFromSocket = true;
            readBuffer.clear();
        }
    }
View Full Code Here

        public int getId() {
            return 0;
        }

        public boolean write(SocketWritable socketWritable) {
            final Packet packet = (Packet) socketWritable;
            if (nodeEngine.getNode().isActive()) {
                Packet newPacket = readFromPacket(packet);
                MemberImpl member = nodeEngine.getClusterService().getMember(localEndpoint);
                if (member != null) {
                    member.didRead();
                }
                nodeEngine.handlePacket(newPacket);
View Full Code Here

            }
            return false;
        }

        private Packet readFromPacket(Packet packet) {
            Packet newPacket = new Packet(nodeEngine.getSerializationService().getPortableContext());
            ByteBuffer buffer = ByteBuffer.allocate(4096);
            boolean writeDone;
            boolean readDone;
            do {
                writeDone = packet.writeTo(buffer);
                buffer.flip();
                readDone = newPacket.readFrom(buffer);
                if (buffer.hasRemaining()) {
                    throw new IllegalStateException("Buffer should be empty! " + buffer);
                }
                buffer.clear();
            } while (!writeDone);

            if (!readDone) {
                throw new IllegalStateException("Read should be completed!");
            }

            newPacket.setConn(localConnection);
            return newPacket;
        }
View Full Code Here

        receive();
    }

    public void send(Object o) throws IOException {
        Data data = serializationService.toData(o);
        Packet packet = new Packet(data, serializationService.getPortableContext());
        packet.setConn(connection);
        clientEngine.handlePacket(packet);
    }
View Full Code Here

        packet.setConn(connection);
        clientEngine.handlePacket(packet);
    }

    public Object receive() throws IOException {
        Packet packet;
        try {
            packet = (Packet) connection.q.take();
        } catch (InterruptedException e) {
            throw new HazelcastException(e);
        }
        ClientResponse clientResponse = serializationService.toObject(packet.getData());
        return serializationService.toObject(clientResponse.getResponse());
    }
View Full Code Here

TOP

Related Classes of com.hazelcast.nio.Packet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.