aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl')
-rw-r--r--lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl125
1 files changed, 125 insertions, 0 deletions
diff --git a/lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl b/lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl
new file mode 100644
index 0000000000..9a7b431513
--- /dev/null
+++ b/lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl
@@ -0,0 +1,125 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : CosNotifyFilter_FilterFactory_impl.erl
+%% Purpose :
+%%----------------------------------------------------------------------
+
+-module('CosNotifyFilter_FilterFactory_impl').
+
+
+%%--------------- INCLUDES -----------------------------------
+%% Application files
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+%% Application files
+-include("CosNotification.hrl").
+-include("CosNotifyChannelAdmin.hrl").
+-include("CosNotifyComm.hrl").
+-include("CosNotifyFilter.hrl").
+-include("CosNotification_Definitions.hrl").
+
+%%--------------- IMPORTS ------------------------------------
+
+%%--------------- EXPORTS ------------------------------------
+%% External
+-export([create_filter/3,
+ create_mapping_filter/4]).
+
+%%--------------- gen_server specific exports ----------------
+-export([handle_info/2, code_change/3]).
+-export([init/1, terminate/2]).
+
+%%--------------- LOCAL DEFINITIONS --------------------------
+%% Data structures
+-record(state, {adminProp,
+ etsR,
+ options}).
+
+%%-----------------------------------------------------------%
+%% function : handle_info, code_change
+%% Arguments: See gen_server documentation.
+%% Effect : Functions demanded by the gen_server module.
+%%------------------------------------------------------------
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+handle_info(_Info, State) ->
+ ?debug_print("INFO: ~p DATA: ~p~n", [State, _Info]),
+ {noreply, State}.
+
+%%----------------------------------------------------------%
+%% function : init, terminate
+%% Arguments:
+%%-----------------------------------------------------------
+
+init(Options) ->
+ process_flag(trap_exit, true),
+ {ok, #state{options = Options}}.
+
+terminate(_Reason, _State) ->
+ ok.
+
+%%-----------------------------------------------------------
+%%------- Exported external functions -----------------------
+%%-----------------------------------------------------------
+%%----------------------------------------------------------%
+%% function : create_filter
+%% Arguments: InitGrammar - string()
+%% Returns : CosNotifyFilter::Filter |
+%% {'EXCEPTION', InvalidGrammar}
+%%-----------------------------------------------------------
+create_filter(OE_THIS, State, InitGrammar) ->
+ case lists:member(InitGrammar, ?not_SupportedGrammars) of
+ true ->
+ SO = 'CosNotification_Common':get_option(server_options, State#state.options,
+ ?not_DEFAULT_SETTINGS),
+ Fi='CosNotifyFilter_Filter':oe_create_link([OE_THIS, self(),
+ InitGrammar],
+ SO),
+ {reply, Fi, State};
+ _ ->
+ corba:raise(#'CosNotifyFilter_InvalidGrammar'{})
+ end.
+
+%%----------------------------------------------------------%
+%% function : create_mapping_filter
+%% Arguments: InitGrammar - string()
+%% Returns : CosNotifyFilter::Filter |
+%% {'EXCEPTION', InvalidGrammar}
+%%-----------------------------------------------------------
+create_mapping_filter(OE_THIS, State, InitGrammar, DefVal) ->
+ case lists:member(InitGrammar, ?not_SupportedGrammars) of
+ true ->
+ SO = 'CosNotification_Common':get_option(server_options, State#state.options,
+ ?not_DEFAULT_SETTINGS),
+ Fi='CosNotifyFilter_MappingFilter':oe_create_link([OE_THIS, self(),
+ InitGrammar, DefVal],
+ SO),
+ {reply, Fi, State};
+ _ ->
+ corba:raise(#'CosNotifyFilter_InvalidGrammar'{})
+ end.
+
+%%--------------- LOCAL FUNCTIONS ----------------------------
+%%--------------- MISC FUNCTIONS, E.G. DEBUGGING -------------
+%%--------------- END OF MODULE ------------------------------