package com.fourinone; import java.rmi.RemoteException; import java.io.File; import java.net.URI; public class FttpWorkerProxy extends WorkerServiceProxy { private FttpWorker fw; private String host; //private int port; FttpWorkerProxy(String host, int port, String sn) { super(host, port, sn); this.host = host; //this.port = port; fw = (FttpWorker)wk; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="readByte",policy=DelegatePolicy.Implements) public byte[] read(String f, long b, long t) throws Throwable{ return read(f,b,t,false); } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="readByteAsyn",policy=DelegatePolicy.Implements) public FileResult<byte[]> readAsyn(final String f, final long b, final long t, final boolean locked){ final FileResult<byte[]> fr = new FileResult<byte[]>(false); tpe().execute(new Runnable(){ public void run(){ try{ //System.out.println(fr); byte[] wh = read(f,b,t,locked); if(wh!=null) fr.setResult(wh); //fr.status = FileResult.READY; fr.setReady(FileResult.READY); }catch(Throwable e){//Exception //System.out.println("doTaskServiceProxy:"+e); LogUtil.info("readAsyn", "exception", e); //e.printStackTrace(); //fr.status = FileResult.EXCEPTION; fr.setReady(FileResult.EXCEPTION); } } }); return fr; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="readByteLocked",policy=DelegatePolicy.Implements) public byte[] readLocked(String f, long b, long t) throws Throwable{ return read(f,b,t,true); } private byte[] read(String f, long b, long t, boolean locked) throws Throwable{ byte[] bts = null; try{ bts = locked?fw.readLocked(f,b,t):fw.read(f,b,t); //System.out.println("end fw.read(f,b,t)"); }catch(Throwable e){ LogUtil.info("read", "exception", e); throw e; } return bts; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="readInt",policy=DelegatePolicy.Implements) public int[] readInt(String f, long b, long t) throws Throwable{ return readInt(f,b,t,false); } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="readIntLocked",policy=DelegatePolicy.Implements) public int[] readIntLocked(String f, long b, long t) throws Throwable{ return readInt(f,b,t,true); } private int[] readInt(String f, long b, long t, boolean locked) throws Throwable{ int[] its = null; try{ its = locked?fw.readIntLocked(f,b,t):fw.readInt(f,b,t); }catch(Throwable e){ LogUtil.info("readInt", "exception", e); throw e; } return its; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="readIntAsyn",policy=DelegatePolicy.Implements) public FileResult<int[]> readIntAsyn(final String f, final long b, final long t, final boolean locked){ final FileResult<int[]> fr = new FileResult<int[]>(false); tpe().execute(new Runnable(){ public void run(){ try{ int[] wh = readInt(f,b,t,locked); if(wh!=null) fr.setResult(wh); fr.setReady(FileResult.READY); }catch(Throwable e){ LogUtil.info("readIntAsyn", "exception", e); fr.setReady(FileResult.EXCEPTION); } } }); return fr; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="writeByte",policy=DelegatePolicy.Implements) public int write(String f, long b, long t, byte[] bs) throws Throwable{ return write(f,b,t,bs,false); } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="writeByteAsyn",policy=DelegatePolicy.Implements) public FileResult<Integer> writeAsyn(final String f, final long b, final long t, final byte[] bs, final boolean locked) { final FileResult<Integer> fr = new FileResult<Integer>(false); tpe().execute(new Runnable(){ public void run(){ try{ int bl = write(f,b,t,bs,locked); fr.setResult(new Integer(bl)); fr.setReady(FileResult.READY); }catch(Throwable e){ LogUtil.info("writeAsyn", "exception", e); //fr.status = FileResult.EXCEPTION; fr.setReady(FileResult.EXCEPTION); } } }); return fr; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="writeByteLocked",policy=DelegatePolicy.Implements) public int writeLocked(String f, long b, long t, byte[] bs) throws Throwable{ return write(f,b,t,bs,true); } private int write(String f, long b, long t, byte[] bs, boolean locked) throws Throwable{ int brs = 0; try{ brs = locked?fw.writeLocked(f,b,t,bs):fw.write(f,b,t,bs); }catch(Throwable e){ LogUtil.info("write", "exception", e); throw e; } return brs; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="writeInt",policy=DelegatePolicy.Implements) public int writeInt(String f, long b, long t, int[] its) throws Throwable{ return writeInt(f,b,t,its,false); } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="writeIntLocked",policy=DelegatePolicy.Implements) public int writeIntLocked(String f, long b, long t, int[] its) throws Throwable{ return writeInt(f,b,t,its,true); } private int writeInt(String f, long b, long t, int[] its, boolean locked) throws Throwable{ int brs = 0; try{ brs = locked?fw.writeIntLocked(f,b,t,its):fw.writeInt(f,b,t,its); }catch(Throwable e){ LogUtil.info("writeInt", "exception", e); throw e; } return brs; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="writeIntAsyn",policy=DelegatePolicy.Implements) public FileResult<Integer> writeIntAsyn(final String f, final long b, final long t, final int[] its, final boolean locked) { final FileResult<Integer> fr = new FileResult<Integer>(false); tpe().execute(new Runnable(){ public void run(){ try{ int bl = writeInt(f,b,t,its,locked); fr.setResult(new Integer(bl)); fr.setReady(FileResult.READY); }catch(Throwable e){ LogUtil.info("writeIntAsyn", "exception", e); fr.setReady(FileResult.EXCEPTION); } } }); return fr; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="getFileMeta",policy=DelegatePolicy.Implements) public FileResult getResultProperty(String f) throws Throwable{ FileResult fres = null; try{ fres = fw.getFileMeta(f); }catch(Throwable e){ LogUtil.info("getResultProperty", "exception", e); throw e; } return fres; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="getChildFileMeta",policy=DelegatePolicy.Implements) public FileResult[] getChildResultProperty(String f) throws Throwable{ FileResult[] res = null; try{ res = fw.getChildFileMeta(f); }catch(Throwable e){ LogUtil.info("getChildResultProperty", "exception", e); throw e; } return res; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="getListRoots",policy=DelegatePolicy.Implements) public String[] listRoots() throws Throwable{ try{ return fw.listRoots(); }catch(Throwable e){ LogUtil.info("listRoots", "exception", e); throw e; } } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="getHost",policy=DelegatePolicy.Implements) public String getHost(){ return host; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="create",policy=DelegatePolicy.Implements) public File createFile(String f, boolean i) throws Throwable{ try{ return fw.createFile(f, i); }catch(Throwable e){ LogUtil.info("createFile", "exception", e); throw e; } } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="delete",policy=DelegatePolicy.Implements) public boolean deleteFile(String f) throws Throwable{ try{ return fw.deleteFile(f); }catch(Throwable e){ LogUtil.info("deleteFile", "exception", e); throw e; } } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="copy",policy=DelegatePolicy.Implements) public boolean copyFile(String f, long ev, URI t) throws Throwable{ try{ /*WareHouse inhouse = new WareHouse(); inhouse.setString("command","copy"); inhouse.setString("frompath",f); inhouse.setString("topath",t); WareHouse wh =((WorkerLocal)fw).doTask(inhouse); Boolean b = (Boolean)wh.getObj("result"); return b.booleanValue();*/ return fw.copyFile(f,ev,t); }catch(Throwable e){ LogUtil.info("copyFile", "exception", e); throw e; } } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="copyAsyn",policy=DelegatePolicy.Implements) public FileResult<FttpAdapter> copyFileAsyn(final String f, final long ev, final URI t) { final FileResult<FttpAdapter> fr = new FileResult<FttpAdapter>(false); tpe().execute(new Runnable(){ public void run(){ try{ boolean b = copyFile(f, ev, t); fr.setResult(b?new FttpAdapter(t.toString()):null); fr.setReady(FileResult.READY); }catch(Throwable e){ LogUtil.info("copyFileAsyn", "exception", e); fr.setReady(FileResult.EXCEPTION); } } }); return fr; } @Delegate(interfaceName="com.fourinone.FttpLocal",methodName="rename",policy=DelegatePolicy.Implements) public boolean renameFile(String f, String newname) throws Throwable{ try{ return fw.renameFile(f, newname); }catch(Throwable e){ LogUtil.info("renameFile", "exception", e); throw e; } } /*@Delegate(interfaceName="com.fourinone.FttpLocal",methodName="getPort",policy=DelegatePolicy.Implements) public int getPort(){ this.port = port; }*/ }