From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- .../src/CosNotifyFilter_FilterFactory_impl.erl | 125 +++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl (limited to 'lib/cosNotification/src/CosNotifyFilter_FilterFactory_impl.erl') 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 ------------------------------ -- cgit v1.2.3