cosnotification_definitions.hrl
来自「OTP是开放电信平台的简称」· HRL 代码 · 共 340 行
HRL
340 行
%%----------------------------------------------------------------------%% ``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 via the world wide web 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.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %% $Id$%%%%----------------------------------------------------------------------%% File : CosNotification_Definitions.hrl%% Purpose : %% Created : 28 Sep 1999%%-----------------------------------------------------------------------ifndef(COSNOTIFICATION_DEFINITIONS_HRL).-define(COSNOTIFICATION_DEFINITIONS_HRL, true).%% ---------------- General comment ------------------------------------%% ******* README ********%% The prefix 'not' is short for notification, and is used to separate locally%% defined macros from the global ones, i.e., do NOT confuse this with a negation!!%%%% In this file you find globally used data structures, constants etc.%%%%--------------- INCLUDES ---------------------------------------------%%-------- Constants --------------------------------------------------define(not_SupportedGrammars, ["EXTENDED_TCL"]).%% !!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%% If OMG redefines the values for the constants the definitions%% below must be redefined!!%%%% !!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!-define(not_BestEffort, 0).-define(not_Persistent, 1).-define(not_EventReliability, "EventReliability").-define(not_ConnectionReliability, "ConnectionReliability").-define(not_Priority, "Priority").-define(not_LowestPriority, -32767).-define(not_HighestPriority, 32767).-define(not_DefaultPriority, 0).-define(not_StartTime, "StartTime").-define(not_StopTime, "StopTime").-define(not_Timeout, "Timeout").-define(not_OrderPolicy, "OrderPolicy").-define(not_AnyOrder, 0).-define(not_FifoOrder, 1).-define(not_PriorityOrder, 2).-define(not_DeadlineOrder, 3).-define(not_DiscardPolicy, "DiscardPolicy").-define(not_LifoOrder, 4).-define(not_RejectNewEvents, 5).-define(not_MaximumBatchSize, "MaximumBatchSize").-define(not_PacingInterval, "PacingInterval").-define(not_StartTimeSupported, "StartTimeSupported").-define(not_StopTimeSupported, "StopTimeSupported").-define(not_MaxEventsPerConsumer, "MaxEventsPerConsumer").-define(not_MaxQueueLength, "MaxQueueLength").-define(not_MaxConsumers, "MaxConsumers").-define(not_MaxSuppliers, "MaxSuppliers").%%--------------- QOS DEFINITIONS ----------------------------%% Limits for QoS. These are our own limits.-define(not_MaxBatchSize, 10000).-define(not_MinBatchSize, 1).-define(not_MinTimeout, 0).-define(not_MaxTimeout, 100000000000).-define(not_MinPacing, 0).-define(not_MaxPacing, 100000000000).-define(not_MinConsumerEvents, 1).-define(not_MaxConsumerEvents, 10000).-define(not_QOS_LIMITS, [#'CosNotification_NamedPropertyRange' {name=?not_EventReliability, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:short(), ?not_BestEffort), high_val=any:create(orber_tc:short(), ?not_Persistent) }}, #'CosNotification_NamedPropertyRange' {name=?not_ConnectionReliability, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:short(), ?not_BestEffort), high_val=any:create(orber_tc:short(), ?not_Persistent) }}, #'CosNotification_NamedPropertyRange' {name=?not_Priority, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:short(), ?not_LowestPriority), high_val=any:create(orber_tc:short(), ?not_HighestPriority) }}, #'CosNotification_NamedPropertyRange' {name=?not_StartTimeSupported, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:boolean(), false), high_val=any:create(orber_tc:boolean(), true) }}, #'CosNotification_NamedPropertyRange' {name=?not_StopTimeSupported, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:boolean(), false), high_val=any:create(orber_tc:boolean(), true) }}, #'CosNotification_NamedPropertyRange' {name=?not_Timeout, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:unsigned_long_long(), ?not_MinTimeout), high_val=any:create(orber_tc:unsigned_long_long(), ?not_MaxTimeout) }}, #'CosNotification_NamedPropertyRange' {name=?not_OrderPolicy, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:short(), ?not_AnyOrder), high_val=any:create(orber_tc:short(), ?not_PriorityOrder) }}, #'CosNotification_NamedPropertyRange' {name=?not_DiscardPolicy, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:short(), ?not_AnyOrder), high_val=any:create(orber_tc:short(), ?not_PriorityOrder) }}, #'CosNotification_NamedPropertyRange' {name=?not_MaximumBatchSize, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:long(), ?not_MinBatchSize), high_val=any:create(orber_tc:long(), ?not_MaxBatchSize) }}, #'CosNotification_NamedPropertyRange' {name=?not_PacingInterval, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:unsigned_long_long(), ?not_MinPacing), high_val=any:create(orber_tc:unsigned_long_long(), ?not_MaxPacing) }}, #'CosNotification_NamedPropertyRange' {name=?not_MaxEventsPerConsumer, range= #'CosNotification_PropertyRange'{ low_val=any:create(orber_tc:long(), ?not_MinConsumerEvents), high_val=any:create(orber_tc:long(), ?not_MaxConsumerEvents) }}].%% Local record used internally, and the reason for this is we get faster%% access to QoS settings.-record(qos, {'EventReliability', 'ConnectionReliability', 'Priority', 'StartTimeSupported', 'StopTimeSupported', 'Timeout', 'OrderPolicy', 'DiscardPolicy', 'MaximumBatchSize', 'PacingInterval', 'MaxEventsPerConsumer'}).%% Global (OMG) representation of QoS.-define(not_DEFAULT_QOS, [#'CosNotification_Property'{name=?not_MaximumBatchSize, value=any:create(orber_tc:long(), 1)}, #'CosNotification_Property'{name=?not_PacingInterval, value=any:create(orber_tc:unsigned_long_long(), 0)}, #'CosNotification_Property'{name=?not_Timeout, value=any:create(orber_tc:unsigned_long_long(), 0)}, #'CosNotification_Property'{name=?not_MaxEventsPerConsumer, value=any:create(orber_tc:long(), 100)}, #'CosNotification_Property'{name=?not_OrderPolicy, value=any:create(orber_tc:short(), ?not_PriorityOrder)}, #'CosNotification_Property'{name=?not_EventReliability, value=any:create(orber_tc:short(), ?not_BestEffort)}, #'CosNotification_Property'{name=?not_ConnectionReliability, value=any:create(orber_tc:short(), ?not_BestEffort)}, #'CosNotification_Property'{name=?not_DiscardPolicy, value=any:create(orber_tc:short(), ?not_RejectNewEvents)}, #'CosNotification_Property'{name=?not_StartTimeSupported, value=any:create(orber_tc:boolean(), false)}, #'CosNotification_Property'{name=?not_StopTimeSupported, value=any:create(orber_tc:boolean(), false)}, #'CosNotification_Property'{name=?not_Priority, value=any:create(orber_tc:short(), ?not_DefaultPriority)}]).%%--------------- QOS CREATORS --------------------------------define(not_CreateInitQoS(), #qos{}).%%--------------- QOS DESTRUCTORS -----------------------------define(not_DestroyQoS(Q), ok).%%--------------- QOS SELECTORS -------------------------------define(not_GetEventReliability(Q), Q#qos.'EventReliability').-define(not_GetConnectionReliability(Q), Q#qos.'ConnectionReliability').-define(not_GetPriority(Q), Q#qos.'Priority').-define(not_GetStartTimeSupported(Q), Q#qos.'StartTimeSupported').-define(not_GetStopTimeSupported(Q), Q#qos.'StopTimeSupported').-define(not_GetTimeout(Q), Q#qos.'Timeout').-define(not_GetOrderPolicy(Q), Q#qos.'OrderPolicy').-define(not_GetDiscardPolicy(Q), Q#qos.'DiscardPolicy').-define(not_GetMaximumBatchSize(Q), Q#qos.'MaximumBatchSize').-define(not_GetPacingInterval(Q), Q#qos.'PacingInterval').-define(not_GetMaxEventsPerConsumer(Q), Q#qos.'MaxEventsPerConsumer').%%--------------- QOS MODIFIERS -------------------------------define(not_SetEventReliability(Q,D), Q#qos{'EventReliability'=D}).-define(not_SetConnectionReliability(Q,D), Q#qos{'ConnectionReliability'=D}).-define(not_SetPriority(Q,D), Q#qos{'Priority'=D}).-define(not_SetStartTimeSupported(Q,D), Q#qos{'StartTimeSupported'=D}).-define(not_SetStopTimeSupported(Q,D), Q#qos{'StopTimeSupported'=D}).-define(not_SetTimeout(Q,D), Q#qos{'Timeout'=D}).-define(not_SetOrderPolicy(Q,D), Q#qos{'OrderPolicy'=D}).-define(not_SetDiscardPolicy(Q,D), Q#qos{'DiscardPolicy'=D}).-define(not_SetMaximumBatchSize(Q,D), Q#qos{'MaximumBatchSize'=D}).-define(not_SetPacingInterval(Q,D), Q#qos{'PacingInterval'=D}).-define(not_SetMaxEventsPerConsumer(Q,D), Q#qos{'MaxEventsPerConsumer'=D}).%%--------------- StructuredEvent CREATORS --------------------define(not_CreateSE(StrD,StrT,StrE,PSeqV,PSeqF,AnyR),#'CosNotification_StructuredEvent'{header = #'CosNotification_EventHeader'{fixed_header = #'CosNotification_FixedEventHeader'{event_type = #'CosNotification_EventType'{domain_name=StrD, type_name=StrT}, event_name = StrE}, variable_header = PSeqV}, filterable_data = PSeqF, remainder_of_body = AnyR}).%% Can be used in guards.-define(not_isConvertedAny(E), (((E#'CosNotification_StructuredEvent'.header) #'CosNotification_EventHeader'.fixed_header) #'CosNotification_FixedEventHeader'.event_type) #'CosNotification_EventType'.type_name == "%ANY").%% Can NOT be used in guards!!!!!-define(not_isConvertedStructured(E), any:get_typecode(E) == 'CosNotification_StructuredEvent':tc()).%%--------------- StructuredEvent DESTRUCTORS -----------------define(not_DestroySE(E), ok).%%--------------- StructuredEvent SELECTORS -------------------define(not_GetSEHeader(E), E#'StructuredEvent'.header).-define(not_GetSEFixedHeader(E), E#'StructuredEvent'.header).%%--------------- StructuredEvent MODIFIERS ------------------%%-------- QoS support ------------------------------------------------define(not_SUPPORTED_QOS, [{?not_EventReliability, 'EventReliability'}, {?not_ConnectionReliability, 'ConnectionReliability'}, {?not_Priority, 'Priority'}, {?not_StartTimeSupported, 'StartTimeSupported'}, {?not_StopTimeSupported, 'StopTimeSupported'}, {?not_Timeout, 'Timeout'}, {?not_OrderPolicy, 'OrderPolicy'}, {?not_DiscardPolicy, 'DiscardPolicy'}, {?not_MaximumBatchSize, 'MaximumBatchSize'}, {?not_PacingInterval, 'PacingInterval'}, {?not_MaxEventsPerConsumer, 'MaxEventsPerConsumer'}]).%%-------- ADMINPROPERTIESADMIN --------------------------------------%% According to the OMG TC Document telecom/98-11-01, p 63 (section 2.5.7), the%% default-value for these 3 admin properties is zero, which means that no limit%% applies to that property.-define(not_DEFAULT_ADMINPROPERTIES,[#'CosNotification_Property'{name=?not_MaxQueueLength, value=any:create(orber_tc:long(), 0)}, #'CosNotification_Property'{name=?not_MaxConsumers, value=any:create(orber_tc:long(), 0)}, #'CosNotification_Property'{name=?not_MaxSuppliers, value=any:create(orber_tc:long(), 0)}]).-define(not_SUPPORTED_ADMINPROPERTIES,[{?not_MaxQueueLength, 'MaxQueueLength'}, {?not_MaxConsumers, 'MaxConsumers'}, {?not_MaxSuppliers, 'MaxSuppliers'}]).%%-------- MISC ---------------------------------------------------------define(not_DEFAULT_SETTINGS, [{pullInterval, 20}, {filterOp, 'OR_OP'}, {gcTime, 60}, {gcLimit, 50}, {timeService, undefined}, {typecheck, true}, {tty, false}, {logfile, false}, {server_options, []}]).-define(not_CreateDBKey, term_to_binary({now(), node()})).-define(DEBUG_LEVEL, 3).-ifdef(debug).-define(debug_print(F,A), io:format("[~p(~p)] "++F,[?MODULE, ?LINE]++A)).-define(DBG(F,A), io:format("[~p(~p)] "++F,[?MODULE, ?LINE]++A)).-define(not_TypeCheck(O,I), ok).%-define(not_TypeCheck(O,M), 'CosNotification_Common':type_check(O,M)).-else.-define(debug_print(F,A), ok).-define(DBG(F,A), ok).-define(not_TypeCheck(O,I), ok).-endif. -endif.%%--------------- END OF MODULE ------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?