$extrastylesheet
libmesh_logging.h
Go to the documentation of this file.
00001 // The libMesh Finite Element Library.
00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
00003 
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2.1 of the License, or (at your option) any later version.
00008 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 
00018 
00019 
00020 #ifndef LIBMESH_LIBMESH_LOGGING_H
00021 #define LIBMESH_LIBMESH_LOGGING_H
00022 
00023 
00024 // The library configuration options
00025 #include "libmesh/libmesh_common.h"
00026 
00027 #include "libmesh/perf_log.h"
00028 
00029 namespace libMesh
00030 {
00031 
00032 
00033 // Forward declaration, required when included
00034 // in perf_log.{C,h} because the preceeding
00035 // #include "libmesh/perf_log.h" is ineffective.
00036 // Multiple inclusion avoidance problem...
00037 // LIBMESH_PERF_LOG_H already #define'd, but the
00038 // class has not been declared yet!.
00039 class PerfLog;
00040 
00045 extern PerfLog perflog;
00046 
00047 
00048 } // namespace libMesh
00049 
00050 
00051 
00052 // Macros for performance logging.  This allows us
00053 // to add performance monitors to the code without
00054 // impacting performance when performance logging
00055 // is disabled.
00056 #ifdef LIBMESH_ENABLE_PERFORMANCE_LOGGING
00057 
00058 #  define START_LOG(a,b)   { libMesh::perflog.push(a,b); }
00059 #  define STOP_LOG(a,b)    { libMesh::perflog.pop(a,b); }
00060 #  define PALIBMESH_USE_LOG(a,b)   { libmesh_deprecated(); }
00061 #  define RESTART_LOG(a,b) { libmesh_deprecated(); }
00062 
00063 #else
00064 
00065 #  define START_LOG(a,b)   {}
00066 #  define STOP_LOG(a,b)    {}
00067 #  define PALIBMESH_USE_LOG(a,b)   {}
00068 #  define RESTART_LOG(a,b) {}
00069 
00070 #endif
00071 
00072 
00073 
00074 
00075 
00076 #endif // LIBMESH_LIBMESH_LOGGING_H