//2006.10.06 truncate string at null 2006.09.29 Date.Date(); sync with c.cs //jar cf c.jar *.class import java.net.*;import java.io.*;import java.text.*;import java.lang.reflect.Array; public class c{public static void main(String[]args){try{ //s.setSoTimeout(ms); //java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("GMT")); //c c=new c(new ServerSocket(5010));while(true)c.w(2,c.k()); //c c=new c("",5010);Object[]x={"GE",new Double(2.5),new Integer(23)};c.k(".u.upd","trade",x); c c=new c("",5001); //Object[]x={new Time(lt()),"xx",new Double(93.5),new Integer(300)};for(int i=0;i<1000;++i)c.ks("upsert","trade",x);c.k(""); Flip t=td(c.k("select sum size by sym from trade"));O(n(t.x));O(n(t.y[0]));O(at(t.y[0],0)); //cols rows data c.close();}catch(Exception e){e.printStackTrace();}} public Socket s;DataInputStream i;OutputStream o;byte[]b,B;int j,J;boolean a; void io(Socket x)throws IOException{s=x;i=new DataInputStream(s.getInputStream());o=s.getOutputStream();} public void close()throws IOException{s.close();i.close();o.close();} public c(ServerSocket s)throws IOException{io(s.accept());i.read(b=new byte[99]);o.write(b,0,1);} public c(String h,int p,String u)throws KException,IOException{io(new Socket(h,p));B=new byte[1+ns(u)];J=0;w(u);o.write(B);if(1!=i.read(B,0,1))throw new KException("access");} public c(String h,int p)throws KException,IOException{this(h,p,System.getProperty("user.name"));} public static class Date implements Serializable{public int i;public Date(int x){i=x;} public java.util.Date Date(){return new java.util.Date(i==ni?nj:86400000L*(i+10957));} public Date(long x){i=x==nj?ni:(int)(x/86400000)-10957;} public Date(java.util.Date d){this(d.getTime());}public String toString(){return i==ni?"":f.format(this.Date());} private static final long serialVersionUID = 2800918561991686149L;} public static class Time implements Serializable{public int i;public Time(int x){i=x;}public Time(long x){i=(int)(x%86400000);} public Time(java.util.Date d){this(d.getTime());}public String toString(){return i==ni?"":new Second(i/1000).toString()+'.'+new DecimalFormat("000").format(i%1000);} private static final long serialVersionUID = 4919433330416082245L;} public static class Month{public int i;public Month(int x){i=x;}public String toString(){int m=i+24000,y=m/12;return i==ni?"":i2(y/100)+i2(y%100)+"-"+i2(1+m%12);}} public static class Minute{public int i;public Minute(int x){i=x;}public String toString(){return i==ni?"":i2(i/60)+":"+i2(i%60);}} public static class Second{public int i;public Second(int x){i=x;}public String toString(){return i==ni?"":new Minute(i/60).toString()+':'+i2(i%60);}} public static class Dict{public Object x;public Object y;public Dict(Object X,Object Y){x=X;y=Y;}} public static class Flip{public String[]x;public Object[]y;public Flip(Dict X){x=(String[])X.x;y=(Object[])X.y;}public Object at(String s){return y[find(x,s)];}} public static Flip td(Object X){if(t(X)==98)return(Flip)X;Dict d=(Dict)X;Flip a=(Flip)d.x,b=(Flip)d.y;int m=n(a.x),n=n(b.x); String[]x=new String[m+n];System.arraycopy(a.x,0,x,0,m);System.arraycopy(b.x,0,x,m,n); Object[]y=new Object[m+n];System.arraycopy(a.y,0,y,0,m);System.arraycopy(b.y,0,y,m,n);return new Flip(new Dict(x,y));} //object.getClass().isArray() t(int[]) is .5 isarray is .1 lookup .05 static int t(Object x){return x instanceof Boolean?-1:x instanceof Byte?-4:x instanceof Short?-5:x instanceof Integer?-6:x instanceof Long?-7: x instanceof Float?-8:x instanceof Double?-9:x instanceof Character?-10:x instanceof String?-11:x instanceof Month?-13: x instanceof java.util.Date?-15:x instanceof Time?-19:x instanceof Date?-14:x instanceof Minute?-17:x instanceof Second?-18: x instanceof boolean[]?1:x instanceof byte[]?4:x instanceof short[]?5:x instanceof int[]?6:x instanceof long[]?7: x instanceof float[]?8:x instanceof double[]?9:x instanceof char[]?10:x instanceof String[]?11:x instanceof Month[]?13: x instanceof java.util.Date[]?15:x instanceof Time[]?19:x instanceof Date[]?14:x instanceof Minute[]?17:x instanceof Second[]?18: x instanceof Flip?98:x instanceof Dict?99:0;} static int ni=Integer.MIN_VALUE;static long nj=Long.MIN_VALUE;static double nf=Double.NaN; static int[]nt={0,1,0,0,1,2,4,8,4,8,1,0,0,4,4,8,0,4,4,4}; static int ns(String s){int i;return s==null?0:-1<(i=s.indexOf('\000'))?i:s.length();} public static Object[]NULL={null,new Boolean(false),null,null,new Byte((byte)0),new Short(Short.MIN_VALUE),new Integer(ni),new Long(nj),new Float(nf),new Double(nf), new Character(' '),"",null,new Month(ni),new Date(ni),new java.util.Date(nj),null,new Minute(ni),new Second(ni),new Time(ni)}; public static Object NULL(char c){return NULL[" b xhijefcs mdz uvt".indexOf(c)];} public static boolean qn(Object x){int t=-t(x);return t>4&&x.equals(NULL[t]);} public static Object at(Object x,int i){return qn(x=Array.get(x,i))?null:x;} public static void set(Object x,int i,Object y){Array.set(x,i,null==y?NULL[t(x)]:y);} static int n(Object x){return x instanceof Dict?n(((Dict)x).x):x instanceof Flip?n(((Flip)x).y[0]):Array.getLength(x);} static int nx(Object x){int i=0,n,t=t(x),j;if(t==99)return 1+nx(((Dict)x).x)+nx(((Dict)x).y);if(t==98)return 3+nx(((Flip)x).x)+nx(((Flip)x).y); if(t<0)return t==-11?2+ns((String)x):1+nt[-t];j=6;n=n(x);if(t==0||t==11)for(;i>8));w((byte)h);} void w(int i){w((short)(i>>16));w((short)i);}void w(long j){w((int)(j>>32));w((int)j);} void w(float e){w(Float.floatToIntBits(e));}void w(double f){w(Double.doubleToLongBits(f));} void w(char c){w((byte)c);}void w(String s){int i=0,n=ns(s);for(;i99){if(t==100){rs();return r();}if(t<104)return b[j++]==0&&t==101?null:"func";if(t>105)r();else for(n=ri();i0)O(t-u);} static long lt(){long t=t();return t+java.util.TimeZone.getDefault().getOffset(t);} static String i2(int i){return new DecimalFormat("00").format(i);} static SimpleDateFormat f=new SimpleDateFormat("yyyy.MM.dd");static{f.setTimeZone(java.util.TimeZone.getTimeZone("GMT"));} }