%%%-------------------------------------------------------------------
%%% @author dlive
%%% @copyright (C) 2018, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 05. Mar 2018 2:06 PM
%%%-------------------------------------------------------------------
-module(type_register).
-author("dlive").
%% API
-export([init/0,regiest_foreign_native/1,lookup_foreign_type/1,lookup_native_type/1]).
-include("hessian.hrl").
-define(FOREIGN_NATIVE_TABLE,foreign_native_table).
-define(NATIVE_FOREIGN_TABLE,native_foreign_table).

init()->
    case ets:info(?FOREIGN_NATIVE_TABLE) of
        undefined ->
            io:format("init decoding foreign_native_table table pid ~p~n",[self()]),
            ets:new(?FOREIGN_NATIVE_TABLE,[public,named_table]); %% public
        _ ->
            ets:delete(?FOREIGN_NATIVE_TABLE),
            ets:new(?FOREIGN_NATIVE_TABLE,[public,named_table])
    end,
    case ets:info(?NATIVE_FOREIGN_TABLE) of
        undefined ->
            io:format("init decoding foreign_native_table table pid ~p~n",[self()]),
            ets:new(?NATIVE_FOREIGN_TABLE,[public,named_table]); %% public
        _ ->
            ets:delete(?NATIVE_FOREIGN_TABLE),
            ets:new(?NATIVE_FOREIGN_TABLE,[public,named_table])
    end,
    ok.


regiest_foreign_native(TypeDef)->
    logger:debug("regiest foreign info ~p",[TypeDef]),
    ets:insert(?FOREIGN_NATIVE_TABLE,{TypeDef#type_def.foreign_type,TypeDef}),
    ets:insert(?NATIVE_FOREIGN_TABLE,{TypeDef#type_def.native_type,TypeDef}).


lookup_foreign_type(ForeignType)->
    case ets:lookup(?FOREIGN_NATIVE_TABLE,ForeignType) of
        []->
            undefined;
        [{_,TypeDef}] ->
            TypeDef
    end.

lookup_native_type(NativeType)->
    case ets:lookup(?NATIVE_FOREIGN_TABLE,NativeType) of
        []->
            undefined;
        [{_,TypeDef}] ->
            TypeDef
    end.