remove unuse file
diff --git a/src/hessianDecode.erl b/src/hessianDecode.erl
deleted file mode 100755
index adc06fe..0000000
--- a/src/hessianDecode.erl
+++ /dev/null
@@ -1,347 +0,0 @@
--module(hessianDecode).
-
--include("hessian.hrl").
-
--export([decode/2]).
-%%-export([init/0]).
-
-%%-record(decoding_state,{type_pool = dict:new(), reference_pool = dict:new()}).
--record(decoding_state,{type_pool = dict:new(), reference_pool = dict:new(),obj_define_no=0}).
-%---------------------------------------------------------------------------
-% Decoding
-%---------------------------------------------------------------------------
-decode_str(Rest, 0, R) ->
-	{list_to_binary(xmerl_ucs:to_utf8(lists:reverse(R))), Rest}; 
-decode_str(<<C/utf8, Rest/binary>>, N, R) ->
-	decode_str(Rest, N-1, [C|R]).
-
-% Call
-decode(<<$H,?M,?m,$C,Bin/binary>>, State) ->
-	{Rest, Function, _State} = decode(Bin,State),
-	{Rest2, Count, __State} = decode(Rest,_State),
-	case decode(list, Rest2,Count,[], __State) of
-		{error, Encoded} ->
-			{error, Encoded};
-		{not_found, Hash} ->
-			{not_found, Hash};    
-		{_Rest, Arguments, _NewState} ->
-			[Function, Arguments]
-	end;
-% Fault
-decode(<<$H,?M,?m,$F,
-		 Rest/binary>>, State) ->
-	{_Rest,#map{dict=Dict},_State} = decode(Rest, State),
-	{ok, Message} = dict:find(<<"message">>, Dict),
-	{error, Message};
-% Reply
-decode(<<$H,?M,?m,$R,Args/binary>>, State) ->
-	case decode(Args,[], State) of
-		{<<>>, Decoded,_State} ->
-			TypeSet = get_type_set(_State),
-			case Decoded of
-				[Value] ->
-					{Value,TypeSet};
-				[H|T] ->
-					{[H|T],TypeSet}
-			end;
-		{error, Encoded} ->
-			{error, Encoded}
-	end;
-% Binaries
-decode(<<16#20,Rest/binary>>, State) -> {Rest, <<>>, State};
-decode(<<Len:8/unsigned,Rest/binary>>, State) when Len =< 16#2f, 16#20 < Len ->
-	_Len = Len - 16#20,
-	<<Bin:_Len/binary,_Rest/binary>> = Rest,
-	{_Rest, Bin, State};
-decode(<<$B,Len:16/unsigned,Bin:Len/binary,Rest/binary>>, State) -> {Rest, Bin, State};
-decode(<<$b,Rest/binary>>,State) -> decode(<<$b,Rest/binary>>, [], State);
-%% Booleans
-decode(<<$T,Rest/binary>>, State) -> {Rest, true, State};
-decode(<<$F,Rest/binary>>, State) -> {Rest, false, State};
-%% Dates
-decode(<<16#4a,Date:64/unsigned,Rest/binary>>, State) ->
-	MegaSecs = Date div ?MegaSeconds,
-	Secs = (Date - MegaSecs * ?MegaSeconds) div ?Seconds,
-	MicroSecs = (Date - MegaSecs * ?MegaSeconds - Secs * ?Seconds) * ?MicroSeconds,
-	{Rest, {MegaSecs, Secs, MicroSecs}, State};
-decode(<<16#4b,Date:32/unsigned,Rest/binary>>, State) ->
-	MegaSecs = (Date * 60000) div ?MegaSeconds,
-	Secs = (Date * 60000 - MegaSecs * ?MegaSeconds) div ?Seconds,
-	{Rest, {MegaSecs, Secs, 0}, State};
-%% Doubles
-decode(<<16#5b,Rest/binary>>, State)-> {Rest, 0.0, State};
-decode(<<16#5c,Rest/binary>>, State)-> {Rest, 1.0, State};
-decode(<<16#5d,Int:8/signed,Rest/binary>>, State)-> {Rest, float(Int), State};
-decode(<<16#5e,Int:16/signed,Rest/binary>>, State)-> {Rest, float(Int), State};
-decode(<<16#5f,Int:32/signed,Rest/binary>>, State)->
-	<<Double:64/float>> = <<Int:32,0,0,0,0>>,
-	{Rest, Double, State};
-decode(<<$D,Double:64/float,Rest/binary>>, State)-> {Rest, Double, State};
-%% Ints
-decode(<<$I,Int:32/signed,Rest/binary>>, State)-> {Rest, Int, State};
-decode(<<Int:8,Rest/binary>>, State) when Int >= 16#80, Int =< 16#bf -> {Rest, Int - 16#90, State};
-decode(<<B2:8,B1:8,B0:8,Rest/binary>>, State) when B2 >= 16#d0, B2 =< 16#d7 -> {Rest, ((B2 - 16#d4) bsl 16) + (B1 bsl 8) + B0, State};
-decode(<<B1:8,B0:8,Rest/binary>>, State) when B1 >= 16#c0, B1 =< 16#cf -> {Rest, ((B1 - 16#c8) bsl 8) + B0, State};
-%% Longs
-decode(<<$L,Long:64/signed,Rest/binary>>, State)-> {Rest, Long, State};
-decode(<<16#59,Long:32/signed,Rest/binary>>, State) -> {Rest, Long, State};
-decode(<<Long:8,Rest/binary>>, State) when Long >= 16#d8, Long =< 16#ef -> {Rest, Long - 16#e0, State};
-decode(<<B2:8,B1:8,B0:8,Rest/binary>>, State) when B2 >= 16#38, B2 =< 16#3f -> {Rest, ((B2 - 16#3c) bsl 16) + (B1 bsl 8) + B0, State};
-decode(<<B1:8,B0:8,Rest/binary>>, State) when B1 >= 16#f0, B1 =< 16#ff -> {Rest, ((B1 - 16#f8) bsl 8) + B0, State};
-%% Strings
-decode(<<0,Rest/binary>>, State) -> {Rest, <<>>, State};
-decode(<<Len:8,Rest/binary>>, State) when Len < 32 -> 
-	{String, NewRest} = decode_str(Rest, Len, []),
-	{NewRest, String, State};
-decode(<<B1:8,B0:8,Rest/binary>>, State) when B1 =< 16#33,B1 >= 16#30 -> 
-	Len = ((B1 - 16#30) bsl 8) + B0,
-	{String, NewRest} = decode_str(Rest, Len, []),
-	{NewRest, String, State};
-decode(<<$S,Len:16/unsigned,Rest/binary>>, State) -> 
-	{String, NewRest} = decode_str(Rest, Len, []),
-	{NewRest, String, State};
-decode(<<$R,Rest/binary>>, State) -> decode(<<$R,Rest/binary>>,[], State);
-%% Nulls
-decode(<<$N,Rest/binary>>, State) -> {Rest, undefined, State};
-%% References
-decode(<<$Q,Bin/binary>>, State)-> 
-	{Rest, IntRef, _State} = decode(Bin,State),
-	{Rest, {ref, IntRef}, _State};
-%% Maps
-decode(<<$M,Map/binary>>, State) -> 
-	{Rest,Type,_State} = decode(Map, State),
-	{_Refnum,__State} = visit(#type_def{foreign_type = map},_State),
-	{_Rest,Dict, NewState} = decode(map, Rest, dict:new(), __State),
-	{_Rest,#map{refNo=_Refnum,type=Type,dict=Dict},NewState};
-decode(<<$H,Map/binary>>, State) -> 
-	{_Refnum,_State} = visit(#type_def{foreign_type = map},State),
-	{_Rest,Dict, NewState} = decode(map, Map, dict:new(), _State),
-	{_Rest,#map{refNo=_Refnum,dict=Dict},NewState};
-%% Lists
-% 'V' type int value*   # fixed-length list
-decode(<<$V,Bin/binary>>, State) -> 
-	{Rest1,_Type,_State1} = decode(Bin,State),
-	{_Refnum,__State} = visit(#type_def{foreign_type = list},_State1),
-	{Rest2,Len,_State2} = decode(Rest1,__State),
-	{NewRest,List,NewState} = decode(list, Rest2, Len, [], _State2),
-	{NewRest,#list{refNo=_Refnum,len=Len,type=_Type,values=List},NewState};
-% 'X' int value*        # fixed-length untyped list
-decode(<<$X,Bin/binary>>, State) ->
-	{Rest1,Len,_State} = decode(Bin,State),
-	{_Refnum,__State} = visit(#type_def{foreign_type = list},_State),
-	{NewRest,List,NewState} = decode(list, Rest1, Len, [], __State),
-	{NewRest,#list{refNo=_Refnum,len=Len,values=List},NewState};
-% [x70-77] type value*  # fixed-length typed list
-decode(<<H:5,Len:3,Bin/binary>>, State) when H == 14 ->
-	{Rest1,_Type,_State} = decode(Bin,State),
-	{_Refnum,__State} = visit(#type_def{foreign_type = list},_State),
-	{NewRest,List,NewState} = decode(list, Rest1, Len, [], __State),
-	{NewRest,#list{refNo=_Refnum,len=Len,type=_Type,values=List},NewState};
-% [x78-7f] value*       # fixed-length untyped list
-decode(<<H:5,Len:3,Bin/binary>>, State) when H == 15 ->
-	{_Refnum,_State} = visit(#type_def{foreign_type = list},State),
-	{NewRest,List,NewState} = decode(list, Bin, Len, [], _State),
-	{NewRest,#list{refNo=_Refnum,len=Len,values=List},NewState};
-% 'U' type value* 'Z'   # variable-length list
-decode(<<$U,Bin/binary>>, State) ->
-	{Rest1,_Type,_State} = decode(Bin,State),
-	{_Refnum,__State} = visit(#type_def{foreign_type = list},_State),
-	{NewRest,List,NewState} = decode(list, Rest1, [], __State),
-	{NewRest,#list{refNo=_Refnum,type=_Type,values=List},NewState};
-% 'W' value* 'Z'        # variable-length untyped list
-decode(<<$W,Bin/binary>>, State) ->
-	{_Refnum,_State} = visit(#type_def{foreign_type = list},State),
-	{NewRest,List,NewState} = decode(list, Bin, [], _State),
-	{NewRest,#list{refNo=_Refnum,values=List},NewState};
-decode(<<$C,Bin/binary>>, State0) ->
-	{Rest1,Type,State1} = decode(Bin,State0), %% Rest1 剩余字节码, Type 对象类型
-	{Rest, TypeDef, State} = decode(type_definition,Type,Rest1,State1),
-	NewState = type_decoding:hash_store(TypeDef,State),
-	decode(Rest,NewState);
-decode(<<$O,Bin/binary>>, State) ->
-	{Rest,Ref,_State} = decode(Bin, State),
-	case type_decoding:hash_lookup(Ref, _State) of
-		{not_found, Ref} ->
-			{Rest, {not_found, Ref}, _State};
-		ForeignView ->
-			#type_def{fieldnames = ForeignFieldNames} = ForeignView,
-			{_Refnum,__State} = type_decoding:visit(ForeignView,_State),
-			Count = count_fields(ForeignView),
-			case decode(field, Rest, Count,[], __State) of
-				{not_found,Hash} ->
-					{not_found,Hash};
-				{_Rest,FieldValues, NewState} ->
-					Object = type_decoding:project_native_view(ForeignFieldNames,FieldValues,ForeignView),
-%%					{_Rest, #object{refNo=_Refnum, typeRef=Ref,values=Object}, NewState}
-					{_Rest, Object, NewState}
-			end
-	end;      
-decode(<<H:4,Ref:4,Rest/binary>>, _State) when H == 6 ->
-	case type_decoding:hash_lookup(Ref, _State) of
-		{not_found, Ref} ->
-			{Rest, {not_found, Ref}, _State};
-		ForeignView ->
-			#type_def{fieldnames = ForeignFieldNames} = ForeignView,
-			{_Refnum,__State} = visit(ForeignView,_State),
-			Count = count_fields(ForeignView),
-			case decode(field, Rest, Count,[], __State) of
-				{not_found,Hash} ->
-					{not_found,Hash};
-				{_Rest,FieldValues, NewState} ->
-					Object = type_decoding:project_native_view(ForeignFieldNames,FieldValues,ForeignView),
-					%%{_Rest, #object{refNo =_Refnum, typeRef=Ref,values=Object}, NewState}
-					{_Rest, Object, NewState}
-			end
-	end;
-%% Anything else
-decode(<<Unexpected/binary>>, State) ->
-	{error, hessianEncode:encode(fault, <<"ProtocolException">>, unexpected_byte_sequence, Unexpected, State) }.
-decode(<<$b,Len:16/unsigned,Bin:Len/binary,$b,Rest/binary>>, Acc, State) ->
-	decode(<<$b,Rest/binary>>,Acc ++ [Bin], State);
-decode(<<$b,Len:16/unsigned,Bin:Len/binary,$B,Rest/binary>>, Acc, State) ->
-	_Acc = Acc ++ [Bin],
-	{_Rest,_Bin, State} = decode(<<$B,Rest/binary>>, State),
-	{_Rest, list_to_binary(_Acc ++ [_Bin]), State};
-decode(<<$R,Len:16/unsigned,Rest/binary>>,Acc, State) ->
-	{_String, NewRest} = decode_str(Rest, Len, []),
-	<<H:8,_/binary>> = NewRest,
-	case H of 
-		$R -> decode(NewRest,list_to_binary([Acc|[_String]]), State);
-		$S -> {_Rest,_Bin, _State} = decode(NewRest, State),
-			  _Acc2 =[Acc |[_String]],
-			  {_Rest, list_to_binary(_Acc2 ++ [_Bin]), _State}
-	end;
-decode(<<>>, List, State) -> {<<>>, List, State};
-decode(<<$Z>>, List, State) -> {<<>>, List, State};
-decode(Args, List, State) ->
-	case decode(Args,State) of
-		{Rest,{ref, Ref}, _State} ->
-			decode(Rest, List ++ [{ref, Ref}] , _State);
-		{Rest, [H|T], _State} ->
-			decode(Rest, List ++ [H|T], _State);
-		{Rest, Result, _State} ->
-			decode(Rest, List ++ [Result], _State);
-		{error, Encoded} ->
-			{error, Encoded}
-	end.
-decode(map, <<$Z>>, Dict, State) -> {<<>>,Dict, State};
-decode(map, <<$Z,Rest/binary>>, Dict, State) -> {Rest,Dict, State};
-decode(map, Bin, Dict, State) ->
-	{_Rest, Key, _State} = decode(Bin, State),
-	case decode(_Rest, _State) of
-		{Rest, {ref, Ref}, __State} ->
-			%Value = lists:nth(Ref + 1, List),
-			Value = Ref,
-			decode(map, Rest, dict:store(Key, {ref, Value}, Dict), __State);
-		{Rest, Value, __State} ->
-			decode(map, Rest, dict:store(Key, Value, Dict), __State)
-	end;
-decode(list, <<>>, List, State) -> {<<>>,lists:reverse(List), State};
-decode(list, <<$Z>>, List, State) -> {<<>>,lists:reverse(List), State};
-decode(list, <<$Z,Rest/binary>>, List, State) -> {Rest, lists:reverse(List), State};
-decode(list, Bin, List, State) ->
-	case decode(Bin, State) of
-		{error, Encoded} ->
-			{error, Encoded};
-		{not_found,Hash} ->
-			{not_found, Hash};    
-		{_Rest, {not_found, Hash}, _State} ->
-			{not_found, Hash};    
-		{Rest, Value, _State} ->
-            decode(list, Rest, [Value|List], _State)
-	end;
-decode(type_definition, ForeignType, Bin, State) ->
-	{Rest,Count, _State} = decode(Bin, State),
-	{NewRest,FieldNames, NewState} = decode(field, Rest, Count, [], _State),
-	%% change 用回之前的 build_foreign_view NewState 不变
-	{TypeDef,NewState2} = type_decoding:build_foreign_view(ForeignType,FieldNames,NewState),
-	{NewRest, TypeDef, NewState2}.
-decode(list, Bin, 0, List, State) -> {Bin, lists:reverse(List), State};
-decode(list, Bin, Len, List, State) ->
-    case decode(Bin, State) of
-        {error, Encoded} ->
-            {error, Encoded};
-        {not_found,Hash} ->
-            {not_found, Hash};    
-        {_Rest, {not_found, Hash}, _State} ->
-            {not_found, Hash};    
-        {Rest, Value, _State} ->
-            decode(list, Rest, Len - 1, [Value|List], _State)
-    end;
-decode(field, Rest, 0, Acc, State) -> {Rest, Acc, State};
-decode(field, <<$Z,Rest/binary>>, _Count, Acc, State) -> {Rest, Acc, State};
-decode(field, Bin, Count, Acc, State) ->
-	{Rest,Field, _State} = decode(Bin, State),
-	case Field of
-		{not_found,Hash} ->
-			{not_found,Hash};
-		_ ->
-			decode(field, Rest, Count - 1, Acc ++ [Field], _State)
-	end.
-
-get_type_set(#decoding_state{type_pool = Pool}) ->
-	case dict:to_list(Pool) of 
-		[] -> [];
-		Data -> [Value || {_Key,Value} <- Data]
-	end.
-
-build_foreign_view(ForeignType,FieldNames,State) ->
-	ForeignView = FieldNames,
-	#decoding_state{type_pool = OldPool} = State,
-	Native = dict:size(OldPool),
-	NewPool = dict:store(Native, 
-						 #type_def{native_type = Native,
-								   foreign_type = ForeignType,
-								   fieldnames = ForeignView}, 
-						 OldPool),
-	{
-	 #type_def{native_type = Native,
-			   foreign_type = ForeignType,
-			   fieldnames = ForeignView},
-	 State#decoding_state{type_pool = NewPool}
-	}.
-
-project_native_view(ForeignView,ForeignData,
-                    #type_def{native_type = _NativeType, foreign_type = _ForeignType, fieldnames = NativeView}) ->
-    AsDict = dict:from_list(lists:zip(ForeignView,ForeignData)),
-    NativeData = [dict:fetch(Key,AsDict) || Key <- NativeView],
-	NativeData.
-
-visit(TypeDef, State = #decoding_state{reference_pool = OldPool}) ->
-    Size = dict:size(OldPool),
-    NewPool = dict:store(Size, TypeDef, OldPool),
-    {Size,State#decoding_state{reference_pool = NewPool}}.
-
-%%hash_lookup(Hash,_State) ->
-%%    init(false),
-%%    case ets:lookup(hashes, Hash) of
-%%        [] ->
-%%            {not_found, Hash};
-%%        [{Hash,TypeDef}] ->
-%%            TypeDef
-%%    end.
-
-%%hash_store(TypeDef = #type_def{native_type = Hash}, State) ->
-%%    init(false),
-%%    ets:insert(hashes,{Hash,TypeDef}),
-%%    State.
-%%
-%%init() -> init(true).
-%%
-%%init(Delete) when is_boolean(Delete) ->
-%%    case ets:info(hashes) of
-%%        undefined ->
-%%            ets:new(hashes,[public,named_table]);
-%%        _ ->
-%%            if
-%%                Delete ->
-%%                    ets:delete(hashes),
-%%                    ets:new(hashes,[public,named_table]);
-%%                true ->
-%%                    ok
-%%            end
-%%    end,
-%%    #decoding_state{}.
-
-count_fields(#type_def{fieldnames = FieldNames}) -> length(FieldNames).
-