adds flatzone lookup by TzName to both db implementations

This commit is contained in:
aj heller
2012-12-17 23:52:20 -08:00
parent 8e4dcb784b
commit 959bb8a2a3
3 changed files with 23 additions and 1 deletions

View File

@@ -8,6 +8,7 @@
-export([ -export([
zones/1 zones/1
, rules/1 , rules/1
, flatzones/1
, flatzone/2 , flatzone/2
%, insert/2 %, insert/2
, get_all/1 , get_all/1
@@ -43,6 +44,10 @@ rules(TzName) ->
gen_server:call(?MODULE, {rules, TzName}). gen_server:call(?MODULE, {rules, TzName}).
flatzones(TzName) ->
gen_server:call(?MODULE, {flatzones, TzName}).
flatzone(Date, TzName) -> flatzone(Date, TzName) ->
gen_server:call(?MODULE, {flatzone, Date, TzName}). gen_server:call(?MODULE, {flatzone, Date, TzName}).
@@ -103,6 +108,10 @@ handle_call({all, Tab}, _, State) ->
Mod= State#state.mod, Mod= State#state.mod,
Matches= Mod:get_all(Tab), Matches= Mod:get_all(Tab),
{reply, Matches, State}; {reply, Matches, State};
handle_call({flatzones, Name}, _, State) ->
Mod= State#state.mod,
Result= Mod:flatzones(Name),
{reply, Result, State};
handle_call({flatzone, Date, Name}, _, State) -> handle_call({flatzone, Date, Name}, _, State) ->
Mod= State#state.mod, Mod= State#state.mod,
Result= Mod:flatzone(Date, Name), Result= Mod:flatzone(Date, Name),

View File

@@ -8,6 +8,7 @@
init/0 init/0
, zones/1 , zones/1
, rules/1 , rules/1
, flatzones/1
, flatzone/2 , flatzone/2
%, insert/2 %, insert/2
, get_all/1 , get_all/1
@@ -27,10 +28,12 @@ implementation() -> ?MODULE.
zones(TzName) -> zones(TzName) ->
ets:select(zone, [{#zone{name=TzName, _='_'}, [], ['$_']}]). ets:select(zone, [{#zone{name=TzName, _='_'}, [], ['$_']}]).
rules(TzName) -> rules(TzName) ->
ets:select(rule, [{#rule{name=TzName, _='_'}, [], ['$_']}]). ets:select(rule, [{#rule{name=TzName, _='_'}, [], ['$_']}]).
flatzones(TzName) ->
ets:select(flatzone, [{#flatzone{tzname=TzName, _='_'}, [], ['$_']}]).
flatzone(Date, TzName) -> flatzone(Date, TzName) ->
FlatZones= ets:select(flatzone, ezic_flatten:ms(Date, TzName)), FlatZones= ets:select(flatzone, ezic_flatten:ms(Date, TzName)),

View File

@@ -8,6 +8,7 @@
init/0 init/0
, zones/1 , zones/1
, rules/1 , rules/1
, flatzones/1
, flatzone/2 , flatzone/2
%, insert/2 %, insert/2
, get_all/1 , get_all/1
@@ -50,6 +51,15 @@ rules(Name) ->
{atomic, Rules}= mnesia:transaction(F), {atomic, Rules}= mnesia:transaction(F),
Rules. Rules.
% retrieve all flatzones by tz name
flatzones(Name) ->
F = fun()->
Q = qlc:q([Z || Z=#flatzone{tzname=N} <- mnesia:table(flatzone), N=:=Name]),
qlc:e(Q)
end,
{atomic, FlatZones}= mnesia:transaction(F),
FlatZones.
% get all records from table % get all records from table
get_all(Tab) when is_atom(Tab) -> get_all(Tab) when is_atom(Tab) ->
F = fun() -> F = fun() ->