From d5e28b33bd2f945cf2a8fcc9b06a1e772fd7a73c Mon Sep 17 00:00:00 2001 From: "pierre%netscape.com" Date: Fri, 14 May 1999 10:02:32 +0000 Subject: [PATCH] First Checked In. --- lib/mac/NSRuntime/include/MANIFEST | 5 ++ lib/mac/NSRuntime/include/ProfilerUtils.h | 31 ++++++++++ lib/mac/NSRuntime/src/ProfilerUtils.c | 71 +++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 lib/mac/NSRuntime/include/MANIFEST create mode 100644 lib/mac/NSRuntime/include/ProfilerUtils.h create mode 100644 lib/mac/NSRuntime/src/ProfilerUtils.c diff --git a/lib/mac/NSRuntime/include/MANIFEST b/lib/mac/NSRuntime/include/MANIFEST new file mode 100644 index 000000000000..1172a1e54f2c --- /dev/null +++ b/lib/mac/NSRuntime/include/MANIFEST @@ -0,0 +1,5 @@ +# +# This is a list of local files which get copied to the mozilla:dist directory +# + +ProfilerUtils.h diff --git a/lib/mac/NSRuntime/include/ProfilerUtils.h b/lib/mac/NSRuntime/include/ProfilerUtils.h new file mode 100644 index 000000000000..2a9988397eb4 --- /dev/null +++ b/lib/mac/NSRuntime/include/ProfilerUtils.h @@ -0,0 +1,31 @@ +/* -*- Mode: c++; tab-width: 2; indent-tabs-mode: nil; -*- */ +/* + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern void ProfileStart(); +extern void ProfileStop(); +extern void ProfileSuspend(); +extern void ProfileResume(); +extern Boolean ProfileInProgress(); + +#ifdef __cplusplus +} +#endif diff --git a/lib/mac/NSRuntime/src/ProfilerUtils.c b/lib/mac/NSRuntime/src/ProfilerUtils.c new file mode 100644 index 000000000000..0612ddd412ac --- /dev/null +++ b/lib/mac/NSRuntime/src/ProfilerUtils.c @@ -0,0 +1,71 @@ +/* -*- Mode: c++; tab-width: 2; indent-tabs-mode: nil; -*- */ +/* + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + + +#ifdef DEBUG + +#include +#include +#include "ProfilerUtils.h" + +//--------------------------------------------- + +static Boolean sProfileInProgress = false; +void ProfileStart() +{ + if (! sProfileInProgress) + { + sProfileInProgress = true; + if (ProfilerInit(collectDetailed, microsecondsTimeBase, 5000, 500)) + return; + ProfilerSetStatus(true); + } +} + +//--------------------------------------------- +void ProfileStop() +{ + if (sProfileInProgress) + { + ProfilerDump("\pMozilla Profile"); + ProfilerTerm(); + sProfileInProgress = false; + } +} + +//--------------------------------------------- +void ProfileSuspend() +{ + if (sProfileInProgress) + ProfilerSetStatus(false); +} + +//--------------------------------------------- +void ProfileResume() +{ + if (sProfileInProgress) + ProfilerSetStatus(true); +} + +//--------------------------------------------- +Boolean ProfileInProgress() +{ + return sProfileInProgress; +} + +#endif //DEBUG