~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/error_message.cc

  • Committer: Mark Atwood
  • Date: 2011-12-15 23:13:18 UTC
  • mfrom: (2465.3.1 rf3)
  • Revision ID: me@mark.atwood.name-20111215231318-mt2y2q4s5ydp79q3
mergeĀ lp:~olafvdspek/drizzle/refactor14

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
 
47
47
class Print : public std::unary_function<plugin::ErrorMessage *, bool>
48
48
{
49
 
  error::level_t priority;
 
49
  error::priority_t priority;
50
50
  const char *format;
51
51
  va_list ap;
52
52
 
53
53
public:
54
 
  Print(error::level_t priority_arg,
 
54
  Print(error::priority_t priority_arg,
55
55
        const char *format_arg, va_list ap_arg) : 
56
56
    std::unary_function<plugin::ErrorMessage *, bool>(),
57
57
    priority(priority_arg), format(format_arg)
76
76
              _("errmsg plugin '%s' errmsg() failed"),
77
77
              handler->getName().c_str());
78
78
      va_end(handler_ap);
 
79
 
79
80
      return true;
80
81
    }
81
82
    va_end(handler_ap);
84
85
}; 
85
86
 
86
87
 
87
 
bool plugin::ErrorMessage::vprintf(error::level_t priority, char const *format, va_list ap)
 
88
bool plugin::ErrorMessage::vprintf(error::priority_t priority, char const *format, va_list ap)
88
89
{
89
 
  if (not (priority >= error::verbosity()))
 
90
  if (priority > error::verbosity())
 
91
  {
90
92
    return false;
 
93
  }
91
94
 
92
95
  /* 
93
96
    Check to see if any errmsg plugin has been loaded
94
97
    if not, just fall back to emitting the message to stderr.
95
98
  */
96
 
  if (not all_errmsg_handler.size())
 
99
  if (all_errmsg_handler.size() == 0)
97
100
  {
98
101
    /* if it turns out that the vfprintf doesnt do one single write
99
 
       (single writes are atomic), then this needs to be rewritten to
100
 
       vsprintf into a char buffer, and then write() that char buffer
101
 
       to stderr */
102
 
      vfprintf(stderr, format, ap);
103
 
      fputc('\n', stderr);
 
102
      (single writes are atomic), then this needs to be rewritten to
 
103
      vsprintf into a char buffer, and then write() that char buffer
 
104
      to stderr 
 
105
    */
 
106
    vfprintf(stderr, format, ap);
 
107
    fputc('\n', stderr);
 
108
 
104
109
    return false;
105
110
  }
106
111