www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@designdev/log.m
function obj = Log(obj, action, varargin) %LOG % Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc. persistent currentState persistent logFilename persistent logServer persistent logMethod persistent logProgID if nargin < 2 action = 'log'; end switch lower(action) case 'clear' currentState = []; if exist(logFilename) == 2 delete(logFilename) end logFilename = ''; return case 'release' if ~isempty(logServer) release(logServer) logServer = []; logProgID = []; end case 'server' progID = varargin{1}; if ~isempty(logServer) if strcmp(logProgID, progID) return else release(logServer) end end logMethod = varargin{2}; logServer = actxserver(progID); logProgID = progID; case 'file' filename = varargin{1}; [path, name, ext] = fileparts(filename); if isempty(ext) ext = '.mat'; end filename = fullfile(path, [name ext]); logFilename = filename; return case 'restore' if ~isempty(logFilename) load(logFilename); obj = currentState; end return case 'log' if ~isempty(logFilename) lObj = count(obj); if lObj > length(currentState) currentState = obj; else S.type = '()'; S.subs = {1:lObj}; currentState = subsasgn(currentState, S, obj); end save(logFilename, 'currentState'); end case 'message' if ~isempty(logServer) messageString = varargin{1}; invoke(logServer, logMethod, [datestr(now) ' : ' messageString]); end otherwise error(message('mbc:designdev:InvalidArgument4')); end