⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cospropertyservice_propertynamesiterator_impl.erl

📁 OTP是开放电信平台的简称
💻 ERL
字号:
%%--------------------------------------------------------------------%% ``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    : CosPropertyService_PropertyNamesIterator_impl.erl%% Description : %%%% Created : 21 Jun 2000%%-----------------------------------------------------------------------module('CosPropertyService_PropertyNamesIterator_impl').%%----------------------------------------------------------------------%% Include files%%-----------------------------------------------------------------------include_lib("orber/include/corba.hrl").-include_lib("orber/src/orber_iiop.hrl").-include("CosPropertyService.hrl").-include("cosProperty.hrl").%%----------------------------------------------------------------------%% External exports%%----------------------------------------------------------------------%% Mandatory server functions-export([init/1, 	 terminate/2,	 code_change/3]).-export([reset/1, 	 next_one/1, 	 next_n/2, 	 destroy/1]).%%----------------------------------------------------------------------%% Internal exports%%-----------------------------------------------------------------------export([        ]).%%----------------------------------------------------------------------%% Records%%-----------------------------------------------------------------------record(state, {properties, counter=1, length}).%%----------------------------------------------------------------------%% Macros%%-----------------------------------------------------------------------define(CreateInitState(L),    #state{properties = L, length = length(L)}).-define(get_Properties(S),     S#state.properties).-define(get_Counter(S),        S#state.counter).-define(get_Length(S),         S#state.length).-define(set_Properties(S, P),  S#state{properties = P}).-define(set_Counter(S, C),     S#state{counter = C}).-define(set_Length(S, L),      S#state{length = L}).-define(increment_Counter(S),  S#state{counter = S#state.counter+1}).-define(decrement_Counter(S),  S#state{counter = S#state.counter-1}).-define(addto_Counter(S, N),   S#state{counter = S#state.counter+N}).-define(subfrom_Counter(S, N), S#state{counter = S#state.counter-N}).%%======================================================================%% External functions%%======================================================================%%----------------------------------------------------------------------%% Function   : init/1%% Description: Initiates the server%% Returns    : {ok, State}          |%%              {ok, State, Timeout} |%%              ignore               |%%              {stop, Reason}%%----------------------------------------------------------------------init(Properties) ->    {ok, ?CreateInitState(Properties)}.%%----------------------------------------------------------------------%% Function   : terminate/2%% Description: Shutdown the server%% Returns    : any (ignored by gen_server)%%----------------------------------------------------------------------terminate(_Reason, _State) ->    ok.%%----------------------------------------------------------------------%% Function   : code_change/3%% Description: Convert process state when code is changed%% Returns    : {ok, NewState}%%----------------------------------------------------------------------code_change(_OldVsn, State, _Extra) ->    {ok, State}.%%---------------------------------------------------------------------%%% Function   : reset%% Arguments  : -%% Description: %% Returns    : {ok, NewState}%%----------------------------------------------------------------------reset(State) ->    {reply, ok, ?set_Counter(State, 1)}.%%---------------------------------------------------------------------%%% Function   : next_one%% Arguments  : -%% Description: %% Returns    : {ok, {bool(), PropertyName}, NewState}%%----------------------------------------------------------------------next_one(State) when ?get_Counter(State) > ?get_Length(State) ->    {reply, {false, ""}, State};next_one(State) ->    {reply, {true, lists:nth(?get_Counter(State), ?get_Properties(State))},      ?set_Counter(State, 1+?get_Counter(State))}.%%---------------------------------------------------------------------%%% Function   : next_n%% Arguments  : N - how many properties we should return.%% Description: %% Returns    : {ok, {bool(), PropertyNameList}, NewState}%%----------------------------------------------------------------------next_n(State, N) ->    case lists:sublist(?get_Properties(State), ?get_Counter(State), N) of	Properties when N+?get_Counter(State) < ?get_Length(State) ->	    {reply, {true, Properties}, ?set_Counter(State, N+?get_Counter(State))};	Properties ->	    {reply, {false, Properties}, ?set_Counter(State, ?get_Length(State))}    end.%%---------------------------------------------------------------------%%% Function   : destroy%% Arguments  : -%% Description: Terminate the object%% Returns    : {ok, NewState}%%----------------------------------------------------------------------destroy(State) ->    {stop, normal, ok, State}.%%======================================================================%% Internal functions%%======================================================================%%======================================================================%% END OF MODULE%%======================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -