PageRenderTime 41ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/libs/perl/Choicetool/Base/Trace.pm

#
Perl | 156 lines | 98 code | 38 blank | 20 comment | 5 complexity | 54abde4d58098f7cb36d6519b5c138a3 MD5 | raw file
Possible License(s): GPL-2.0
  1. # -*- perl -*-
  2. #
  3. # Trace.pm
  4. #
  5. # Copyright (C) 2008, 2009 Francesco Salvestrini
  6. #
  7. # This program is free software; you can redistribute it and/or modify
  8. # it under the terms of the GNU General Public License as published by
  9. # the Free Software Foundation; either version 2 of the License, or
  10. # (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. # GNU General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License along
  18. # with this program; if not, write to the Free Software Foundation, Inc.,
  19. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  20. #
  21. package Choicetool::Base::Trace;
  22. use 5.8.0;
  23. use warnings;
  24. use strict;
  25. use diagnostics;
  26. use Choicetool::Base::Debug;
  27. BEGIN {
  28. use Exporter ();
  29. our ($VERSION, @ISA, @EXPORT);
  30. @ISA = qw(Exporter);
  31. @EXPORT = qw(&trace_prefix_set
  32. &error
  33. &warning &warning_set &warning_get
  34. &verbose &verbose_set &verbose_get &verbose_inc
  35. &debug &debug_set &debug_get &debug_inc);
  36. }
  37. my $trace_prefix = "";
  38. my $verbose_mode = 0;
  39. my $debug_mode = 0;
  40. my $warning_mode = "none";
  41. sub trace_prefix_set ($)
  42. {
  43. my $string = shift;
  44. assert(defined($string));
  45. $trace_prefix = $string;
  46. }
  47. sub error ($)
  48. {
  49. my $string = shift;
  50. assert(defined($string));
  51. print $trace_prefix . ": " . $string . "\n";
  52. }
  53. sub warning_set ($)
  54. {
  55. my $string = shift;
  56. $warning_mode = $string;
  57. }
  58. sub warning_get ()
  59. {
  60. return $warning_mode;
  61. }
  62. sub warning ($)
  63. {
  64. my $string = shift;
  65. assert($warning_mode ne "");
  66. assert(defined($string));
  67. if ($warning_mode eq "none") {
  68. return;
  69. }
  70. print $trace_prefix . ": " . $string . "\n";
  71. }
  72. sub verbose_set ($)
  73. {
  74. my $value = shift;
  75. assert($value >= 0);
  76. $verbose_mode = $value;
  77. }
  78. sub verbose_inc ()
  79. {
  80. $verbose_mode = $verbose_mode + 1;
  81. }
  82. sub verbose_get ()
  83. {
  84. return $verbose_mode;
  85. }
  86. sub verbose ($)
  87. {
  88. my $string = shift;
  89. assert(defined($string));
  90. assert($verbose_mode >= 0);
  91. if ($verbose_mode != 0) {
  92. print $trace_prefix . ": " . $string . "\n";
  93. }
  94. }
  95. sub debug_set ($)
  96. {
  97. my $value = shift;
  98. assert($value >= 0);
  99. $debug_mode = $value;
  100. }
  101. sub debug_inc ()
  102. {
  103. $debug_mode = $debug_mode + 1;
  104. }
  105. sub debug_get ()
  106. {
  107. return $debug_mode;
  108. }
  109. sub debug ($)
  110. {
  111. my $string = shift;
  112. assert(defined($string));
  113. assert($debug_mode >= 0);
  114. if ($debug_mode != 0) {
  115. print $trace_prefix . ": " . $string . "\n";
  116. }
  117. }
  118. 1;