diff options
Diffstat (limited to 'lib/pman/src/pman_buf_converter.erl')
-rw-r--r-- | lib/pman/src/pman_buf_converter.erl | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/lib/pman/src/pman_buf_converter.erl b/lib/pman/src/pman_buf_converter.erl deleted file mode 100644 index c8b3fe37aa..0000000000 --- a/lib/pman/src/pman_buf_converter.erl +++ /dev/null @@ -1,190 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1997-2012. 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% -%% -%%---------------------------------------------------------------------- -%% Purpose : The purpouse of the converter process is to take -%% care of the raw data that is received by the tracing -%% process (a pman_shell process) and pass it on to -%% the buffer process in chunks that can be handled. -%% -%% This module is a part of the buffering system, and -%% should not be used except through the API defined -%% in the pman_buf module. -%% -%%---------------------------------------------------------------------- - --module(pman_buf_converter). --compile([{nowarn_deprecated_function,{gs,start,0}}]). - -%%-compile(export_all). --export([init/2]). - --include("pman_buf.hrl"). - - -%% --------------------------------------------------------------- -%% Starts the process which received the raw data from the debugger, -%% cuts and forwards it to the buffer in smaller chunks. High priority -%% to avoid large message queues waiting to be processed. - -init(Buffer_Pid, FileName) -> - process_flag(priority, max), - converter_loop(Buffer_Pid,[],0,true,[], FileName). - -converter_loop(Buffer_Pid,Raw,Size,State,Last, FileName) -> - receive - {file,Shell} -> - case init_file(lists:append(Raw,Last), - FileName, - Shell, - Buffer_Pid) of - true -> converter_loop(Buffer_Pid, - [to_buffer], - 1, - State, - [], - FileName); - false -> converter_loop(Buffer_Pid, - Raw, - Size, - State, - Last, - FileName) - end; - {raw,Trace} -> - {New_Raw,New_Size,New_State,New_Last} = - converter_data(Trace, Buffer_Pid, Raw, Size, State, Last), - converter_loop(Buffer_Pid, - New_Raw, - New_Size, - New_State, - New_Last, - FileName); - {buffer,accept} when Raw /= [] -> - {Length,Rest,Print} = pman_buf_utils:split(Raw,?PRINT_LEN,0,[]), - Buffer_Pid!{raw,Print,Length}, - converter_loop(Buffer_Pid,Rest,Size-Length,false,Last,FileName); - {buffer,accept} when Last /= [] -> - {New_Raw,New_Size,New_State,New_Last} = - converter_data(Last,Buffer_Pid,Raw,Size,true,[]), - converter_loop(Buffer_Pid, - New_Raw, - New_Size, - New_State, - New_Last, - FileName); - {buffer,accept} -> - converter_loop(Buffer_Pid,Raw,Size,true,Last, FileName); - {clear,Str} -> - Buffer_Pid!{clear,Str}, - converter_loop(Buffer_Pid,[],0,State,Last,FileName) - end. - -converter_data(Trace,Buffer_Pid,Raw,Size,State,Last) -> - if - ?BUFF_SIZE - Size > 0 -> - {Len,Rest,New_Trace} = pman_buf_utils:split(Trace, - ?BUFF_SIZE-Size, - 0,[]), - {New_Raw,New_Last} = - case Rest of - [] -> - {lists:append(Raw,New_Trace),Last}; - [_|_] -> - case Last of - [] -> - {lists:append(Raw,New_Trace),Rest}; - _ ->{lists:concat([Raw,New_Trace,[cut_buffer]]), - Rest} - end - end, - case State of true -> - {Length,Cut_Raw,Print} = pman_buf_utils:split(New_Raw, - ?PRINT_LEN, - 0,[]), - Buffer_Pid!{raw,Print,Length}, - {Cut_Raw,Size-Length,false,New_Last}; - _ -> - {New_Raw,Size+Len,false,New_Last} - end; - true -> - {Raw,Size,State,Trace} - end. - - -%% --------------------------------------------------------------- -%% Initializes the environment for saving the trace to file. The -%% actual saving is taken care of by the buffer process. - -init_file(Raw,FileName, Name,Buffer_Pid) -> - case open_file(FileName, Name) of - {false,T} -> - pman_win:msg_win(T), - false; - {File,T} -> - Buffer_Pid!{converter,file}, - pman_win:dialog_window(gs:start(),T), - save_loop_init(File,Raw) - end. - -open_file(FileName, _Shell) -> -%% L = "pman_trace." ++ Shell, - case file:open(FileName, [read,write]) of - {error, _} -> - Str = "ERROR: Could not create_file\n" ++ FileName, - {false,Str}; - {ok,File} -> - file:position(File, {eof, 0}), - Str1 = " Appending trace log to file\n" ++ FileName, - {File,Str1} - end. - - -save_loop_init(Fd,Raw) -> - {Date, Time} = calendar:local_time(), - {Year, Month, Day} = Date, - {Hour, Minute, Second} = Time, - io:format(Fd,"%%% ~n",[]), - io:format(Fd,"%%% Trace output~n",[]), - io:format(Fd,"%%% Started at ~4p-~2p-~2p ~2p:~2p:~2p~n", - [Year, Month, Day, - Hour, Minute, Second - ]), - io:format(Fd,"%%% ~n~n",[]), - - Print = lists:map(fun(X) -> pman_buf_utils:textformat(X) end, Raw), - receive - {buffer,Text} when is_list(Text) -> - io:format(Fd,Text,[]), - io:format(Fd,Print,[]), - save_loop(Fd) - end. - -save_loop(Fd) -> - receive - {raw,Raw} -> - Print = lists:map(fun(X) -> pman_buf_utils:textformat(X) end, Raw), - io:format(Fd,Print,[]), - save_loop(Fd); - buffer -> true - end. - - - - - |