adds flatzone lookup by TzName to both db implementations
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
@@ -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)),
|
||||||
|
|||||||
@@ -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() ->
|
||||||
|
|||||||
Reference in New Issue
Block a user