Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package divconq.io.stream;
 
 
public class CtpStreamDest extends BaseStream implements IStreamDest {
	protected Channel chan = null;
	protected boolean userelpath = false;
	protected String relpath = null;
	public CtpStreamDest(Channel chan) {
		this. = chan;
	}
	public void init(StackEntry stackXElement elboolean autorelative) {
		if (autorelative || stack.boolFromElement(el"Relative"false) || el.getName().startsWith("X")) {
        	this. = "";
        	this. = true;
        }
        Struct src = stack.refFromElement(el"RelativeTo");
        
        if ((src != null) && !(src instanceof NullStruct)) {
            if (src instanceof IFileStoreDriver
            	this. = "";
            else if (src instanceof IFileStoreFile)
            	this. = ((IFileStoreFile)src).getPath();
            else 
            	this. = src.toString();
            
        	this. = true;
        }
	}
	public void close() {
		// TODO return the channel to it's manager, if not already - if we didn't get a FINAL below then 
		// tell manager it is bad - close channel, read/write state unknown
		this. = null;
		super.close();
	}
	public HandleReturn handle(TaskRun cbStreamMessage msg) {
			public void operationComplete(ChannelFuture futurethrows Exception {
				if (future.isSuccess()) {
					if (msg == .)
						cb.complete();
					else
						cb.resume();
				}
				else {
					cb.kill("ERROR sending - DONE sending!  " + future.cause());
				}	
			}
		};
    	
		if (msg == .)
		else
			this..writeAndFlush(msg).addListener(cfl);		// TODO build up a buffer of at least N size before flush...FINAL always flushes
    	
	}
	public void request(TaskRun cb) {
		// we are terminal, no downstream should call us
		cb.kill("File destination cannot be a source");
	}
	public void execute(TaskRun cb) {
		// TODO optimize if upstream is local file also
		this..request(cb);
	}
New to GrepCode? Check out our FAQ X