Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

Debug.H

Go to the documentation of this file.
00001 // Copyright (C) 2001, Compaq Computer Corporation
00002 // 
00003 // This file is part of Vesta.
00004 // 
00005 // Vesta is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU Lesser General Public
00007 // License as published by the Free Software Foundation; either
00008 // version 2.1 of the License, or (at your option) any later version.
00009 // 
00010 // Vesta is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // Lesser General Public License for more details.
00014 // 
00015 // You should have received a copy of the GNU Lesser General Public
00016 // License along with Vesta; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 
00019 // Last modified on Thu Nov  8 12:36:38 EST 2001 by ken@xorian.net
00020 //      modified on Wed Sep 20 14:55:21 PDT 1995 by heydon
00021 
00022 // Debug.H -- common functions for debugging, etc.
00023 
00024 #ifndef _DEBUG_H
00025 #define _DEBUG_H
00026 
00027 class Debug {
00028   public:
00029     static void Lock() throw ();
00030     static void Unlock() throw ();
00031     // Acquire/release a hidden global lock "Debug::mu"
00032 
00033     static char *Timestamp() throw ();
00034     /* REQUIRES Debug::mu IN LL */
00035     /* Returns a string for the current timestamp of the form "HH:MM:SS.sss",
00036        where "HH" are hours, "MM" are minutes, "SS" are seconds, and "sss" are
00037        milliseconds. The result is a pointer to a hidden global buffer, so
00038        subsequent calls will overwrite the result.
00039 
00040        This procedure is not atomic; use "Lock()" and "Unlock()" above to
00041        guarantee atomicity. Also, once the lock is release, the result should
00042        not be used. */
00043 
00044     static int MyRand(int lo, int hi) throw ();
00045     // Return a random integer in the closed interval [lo, hi].
00046 
00047     static void BlockForever() throw ();
00048     // The calling thread never returns; it blocks on a condition variable
00049     // that is never signaled.
00050 };
00051 
00052 #endif // _DEBUG_H

Generated on Mon May 8 00:48:31 2006 for Vesta by  doxygen 1.4.2