Changeset aee1a3
- Timestamp:
- Mar 11, 2010, 2:19:53 PM (15 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- ed58ad
- Parents:
- e73a8a2
- Location:
- src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Makefile.am
re73a8a2 raee1a3 12 12 13 13 PATTERNSOURCE = Patterns/Observer.cpp 14 PATTERNHEADER = Patterns/Observer.hpp Patterns/Cacheable.hpp 14 PATTERNHEADER = Patterns/Cacheable.hpp \ 15 Patterns/Observer.hpp \ 16 Patterns/Singleton.hpp 15 17 16 18 VIEWSOURCE = Views/View.cpp Views/StringView.cpp Views/MethodStringView.cpp Views/StreamStringView.cpp -
src/log.cpp
re73a8a2 raee1a3 15 15 */ 16 16 void setVerbosity(int verbosityLevel) { 17 logger::getInstance() ->setVerbosity(verbosityLevel);17 logger::getInstance().setVerbosity(verbosityLevel); 18 18 errorLogger::getInstance()->setVerbosity(verbosityLevel); 19 19 } … … 24 24 * \param indentation level of the message to log 25 25 */ 26 class logger *Log() {26 class logger& Log() { 27 27 return logger::getInstance(); 28 28 } -
src/logger.cpp
re73a8a2 raee1a3 9 9 #include "logger.hpp" 10 10 #include "verbose.hpp" 11 #include "Patterns/Singleton_impl.hpp" 11 12 12 13 ofstream nullStream("/dev/null"); 13 14 14 logger* logger::instance = NULL;15 15 int logger::verbosity = 2; 16 16 ostream* logger::nix = &nullStream; … … 23 23 logger::logger() 24 24 { 25 instance = NULL;26 25 verbosity = 2; 27 26 }; … … 34 33 } 35 34 36 /** 37 * Returns the singleton logger instance. 38 * 39 * \return logger instance 40 */ 41 logger* logger::getInstance() { 42 if (instance == NULL) { 43 instance = new logger(); 44 } 45 46 return instance; 47 } 48 49 50 /** 51 * Purges the current logger instance. 52 */ 53 void logger::purgeInstance() { 54 if (instance != NULL) { 55 delete instance; 56 } 57 58 instance = NULL; 59 } 35 CONSTRUCT_SINGLETON(logger) 60 36 61 37 /** -
src/logger.hpp
re73a8a2 raee1a3 11 11 #include <iostream> 12 12 13 #include "Patterns/Singleton.hpp" 14 13 15 using namespace std; 14 16 15 17 class Verbose; 16 18 17 class logger { 19 class logger : public Singleton<logger> { 20 friend class Singleton<logger>; 18 21 public : 19 22 static ostream *nix; 20 23 static int verbosity; 21 24 22 static logger* getInstance();23 static void purgeInstance();24 25 static bool DoOutput(); 25 26 static void setVerbosity(int verbosityLevel); … … 30 31 /** Do not call this destructor directly, use purgeInstance() instead. */ 31 32 ~logger(); 32 33 private:34 static logger* instance;35 33 }; 36 34 -
src/unittests/logunittest.cpp
re73a8a2 raee1a3 40 40 void LogTest::logTest() 41 41 { 42 logger::getInstance() ->setVerbosity(2);42 logger::getInstance().setVerbosity(2); 43 43 Log() << Verbose(0) << "Verbosity level is set to 2." << endl; 44 44 Log() << Verbose(0) << "Test level 0" << endl;
Note:
See TracChangeset
for help on using the changeset viewer.