Package org.apache.sshd.common

Examples of org.apache.sshd.common.Closeable


            gracefulFuture.setClosed();
        }
    }

    protected Closeable getInnerCloseable() {
        return new Closeable() {
            public boolean isClosed() {
                return gracefulFuture.isClosed();
            }
            public boolean isClosing() {
                return true;
View Full Code Here


    protected Closeable getInnerCloseable() {
        return CloseableUtils.sequential(getCommandCloseable(), super.getInnerCloseable());
    }

    protected Closeable getCommandCloseable() {
        return new Closeable() {
            public boolean isClosed() {
                return commandExitFuture.isClosed();
            }
            public boolean isClosing() {
                return isClosed();
View Full Code Here

        return session.write(buffer);
    }

    @Override
    protected Closeable getInnerCloseable() {
        return new Closeable() {
            public boolean isClosing() {
                return session.isClosing();
            }
            public boolean isClosed() {
                return !session.isConnected();
View Full Code Here

            if (closeable != null) {
                nbNonNulls++;
            }
        }
        if (nbNonNulls == 0) {
            return new Closeable() {
                final CloseFuture future = new DefaultCloseFuture(lock);
                public boolean isClosed() {
                    return future.isClosed();
                }
                public boolean isClosing() {
                    return isClosed();
                }
                public CloseFuture close(boolean immediately) {
                    future.setClosed();
                    return future;
                }
            };
        } else if (nbNonNulls == 1) {
            for (Closeable closeable : closeables) {
                if (closeable != null) {
                    return closeable;
                }
            }
            throw new IllegalStateException();
        } else {
            return new Closeable() {
                final CloseFuture future = new DefaultCloseFuture(lock);
                final AtomicBoolean closing = new AtomicBoolean();
                public boolean isClosed() {
                    return future.isClosed();
                }
View Full Code Here

            if (closeable != null) {
                nbNonNulls++;
            }
        }
        if (nbNonNulls == 0) {
            return new Closeable() {
                final CloseFuture future = new DefaultCloseFuture(lock);
                public boolean isClosed() {
                    return future.isClosed();
                }
                public boolean isClosing() {
                    return isClosed();
                }
                public CloseFuture close(boolean immediately) {
                    future.setClosed();
                    return future;
                }
            };
        } else if (nbNonNulls == 1) {
            for (Closeable closeable : closeables) {
                if (closeable != null) {
                    return closeable;
                }
            }
            throw new IllegalStateException();
        } else {
            return new Closeable() {
                final DefaultCloseFuture future = new DefaultCloseFuture(lock);
                final AtomicBoolean closing = new AtomicBoolean();
                public boolean isClosed() {
                    return future.isClosed();
                }
                public boolean isClosing() {
                    return closing.get();
                }
                public CloseFuture close(final boolean immediately) {
                    if (closing.compareAndSet(false, true)) {
                        final Iterator<Closeable> iterator = Arrays.asList(closeables).iterator();
                        SshFutureListener<CloseFuture> listener = new SshFutureListener<CloseFuture>() {
                            public void operationComplete(CloseFuture previousFuture) {
                                while (iterator.hasNext()) {
                                    Closeable c = iterator.next();
                                    if (c != null) {
                                        CloseFuture nextFuture = c.close(immediately);
                                        nextFuture.addListener(this);
                                        return;
                                    }
                                }
                                if (!iterator.hasNext()) {
View Full Code Here

        }
        public Builder(Object lock) {
            this.lock = lock;
        }
        public <T extends SshFuture> Builder when(final SshFuture<T>... futures) {
            return close(new Closeable() {
                private volatile boolean closing;
                private volatile boolean closed;
                public CloseFuture close(boolean immediately) {
                    closing = true;
                    if (immediately) {
View Full Code Here

            }
            return this;
        }
        public Closeable build() {
            if (closeable == null) {
                closeable = new Closeable() {
                    private volatile boolean closed;
                    public CloseFuture close(boolean immediately) {
                        closed = true;
                        return closed();
                    }
View Full Code Here

        return parallel(null, closeables);
    }

    public static Closeable parallel(final Object lock, final Closeable... closeables) {
        if (closeables.length == 0) {
            return new Closeable() {
                public CloseFuture close(boolean immediately) {
                    final CloseFuture future = new DefaultCloseFuture(lock);
                    future.setClosed();
                    return future;
                }
            };
        } else if (closeables.length == 1) {
            return closeables[0];
        } else {
            return new Closeable() {
                public CloseFuture close(boolean immediately) {
                    final CloseFuture future = new DefaultCloseFuture(lock);
                    final AtomicInteger count = new AtomicInteger(closeables.length);
                    SshFutureListener<CloseFuture> listener = new SshFutureListener<CloseFuture>() {
                        public void operationComplete(CloseFuture f) {
View Full Code Here

        return sequential(null, closeables);
    }

    public static Closeable sequential(final Object lock, final Closeable... closeables) {
        if (closeables.length == 0) {
            return new Closeable() {
                public CloseFuture close(boolean immediately) {
                    final CloseFuture future = new DefaultCloseFuture(lock);
                    future.setClosed();
                    return future;
                }
            };
        } else if (closeables.length == 1) {
            return closeables[0];
        } else {
            return new Closeable() {
                public CloseFuture close(final boolean immediately) {
                    final DefaultCloseFuture future = new DefaultCloseFuture(lock);
                    final Iterator<Closeable> iterator = Arrays.asList(closeables).iterator();
                    SshFutureListener<CloseFuture> listener = new SshFutureListener<CloseFuture>() {
                        public void operationComplete(CloseFuture previousFuture) {
                            if (iterator.hasNext()) {
                                Closeable c = iterator.next();
                                CloseFuture nextFuture = c.close(immediately);
                                nextFuture.addListener(this);
                            } else {
                                future.setClosed();
                            }
                        }
View Full Code Here

        return session.write(buffer);
    }

    @Override
    protected Closeable getInnerCloseable() {
        return new Closeable() {
            public org.apache.sshd.common.future.CloseFuture close(boolean immediately) {
                final DefaultCloseFuture future = new DefaultCloseFuture(lock);
                session.close(false).addListener(new IoFutureListener<IoFuture>() {
                    public void operationComplete(IoFuture f) {
                        future.setValue(true);
View Full Code Here

TOP

Related Classes of org.apache.sshd.common.Closeable

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.