cosfiletransfer_fileiterator_impl.erl
来自「OTP是开放电信平台的简称」· ERL 代码 · 共 156 行
ERL
156 行
%%----------------------------------------------------------------------%% ``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 : CosFileTransfer_FileIterator_impl.erl%% Description : %%%% Created : 12 Sept 2000%%-----------------------------------------------------------------------module('CosFileTransfer_FileIterator_impl').%%----------------------------------------------------------------------%% Include files%%-----------------------------------------------------------------------include("cosFileTransferApp.hrl").%%----------------------------------------------------------------------%% External exports%%-----------------------------------------------------------------------export([init/1, terminate/2, code_change/3, handle_info/2]).%% Interface functions-export([next_one/2, next_n/3, destroy/2]).%%----------------------------------------------------------------------%% Internal exports%%-----------------------------------------------------------------------export([]).%%----------------------------------------------------------------------%% Records%%----------------------------------------------------------------------%%----------------------------------------------------------------------%% Macros%%----------------------------------------------------------------------%%======================================================================%% External functions%%======================================================================%%----------------------------------------------------------------------%% Function : init/1%% Returns : {ok, State} |%% {ok, State, Timeout} |%% ignore |%% {stop, Reason}%% Description: Initiates the server%%----------------------------------------------------------------------init([FileList]) -> {ok, FileList}.%%----------------------------------------------------------------------%% Function : terminate/2%% Returns : any (ignored by gen_server)%% Description: Shutdown the server%%----------------------------------------------------------------------terminate(_Reason, _State) -> ok.%%----------------------------------------------------------------------%% Function : code_change/3%% Returns : {ok, NewState}%% Description: Convert process state when code is changed%%----------------------------------------------------------------------code_change(_OldVsn, State, _Extra) -> {ok, State}.%%---------------------------------------------------------------------%%% function : handle_info/2%% Arguments: %% Returns : %% Effect : %%----------------------------------------------------------------------handle_info(Info, State) -> case Info of {'EXIT', _Pid, Reason} -> {stop, Reason, State}; _Other -> {noreply, State} end.%%======================================================================%% CosFileTransfer::FileIterator%%======================================================================%%---------------------------------------------------------------------%%% Function : next_one%% Arguments : %% Returns : {boolean(), FileWrapper}%% Description: %%----------------------------------------------------------------------next_one(_OE_This, []) -> {reply, {false, #'CosFileTransfer_FileWrapper'{the_file = corba:create_nil_objref(), file_type = nfile}}, []};next_one(_OE_This, [FileWrapper]) -> {reply, {true, FileWrapper}, []};next_one(_OE_This, [FileWrapper|Rest]) -> {reply, {true, FileWrapper}, Rest}.%%---------------------------------------------------------------------%%% Function : next_n%% Arguments : HowMany - ulong()%% Returns : {boolean(), FileWrapperList}%% Description: %%----------------------------------------------------------------------next_n(_OE_This, [], _) -> {reply, {false, []}, []};next_n(_OE_This, FileWrapperList, HowMany) when HowMany > length(FileWrapperList) -> {reply, {true, FileWrapperList}, []};next_n(_OE_This, FileWrapperList, HowMany) -> {reply, {true, lists:sublist(FileWrapperList, HowMany)}, lists:nthtail(HowMany, FileWrapperList)}.%%---------------------------------------------------------------------%%% Function : destroy%% Arguments : -%% Returns : -%% Description: %%----------------------------------------------------------------------destroy(_OE_This, State) -> {stop, normal, ok, State}.%%======================================================================%% Internal functions%%====================================================================== %%======================================================================%% END OF MODULE%%======================================================================
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?