📄 ndbout.cpp
字号:
/* Copyright (C) 2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#include <ndb_global.h>#include <NdbOut.hpp>#include <OutputStream.hpp>static FileOutputStream ndbouts_fileoutputstream(stdout);NdbOut ndbout(ndbouts_fileoutputstream);static const char * fms[] = { "%d", "0x%02x", // Int8 "%u", "0x%02x", // Uint8 "%d", "0x%04x", // Int16 "%u", "0x%04x", // Uint16 "%d", "0x%08x", // Int32 "%u", "0x%08x", // Uint32 "%lld", "0x%016llx", // Int64 "%llu", "0x%016llx" // Uint64 "%llu", "0x%016llx" // UintPtr};NdbOut& NdbOut::operator<<(Int8 v) { m_out->print(fms[0+isHex],(int)v); return *this;}NdbOut& NdbOut::operator<<(Uint8 v) { m_out->print(fms[2+isHex],(int)v); return *this;}NdbOut& NdbOut::operator<<(Int16 v) { m_out->print(fms[4+isHex],(int)v); return *this;}NdbOut& NdbOut::operator<<(Uint16 v) { m_out->print(fms[6+isHex],(int)v); return *this;}NdbOut& NdbOut::operator<<(Int32 v) { m_out->print(fms[8+isHex], v); return *this;}NdbOut& NdbOut::operator<<(Uint32 v) { m_out->print(fms[10+isHex], v); return *this;}NdbOut& NdbOut::operator<<(Int64 v) { m_out->print(fms[12+isHex], v); return *this;}NdbOut& NdbOut::operator<<(Uint64 v) { m_out->print(fms[14+isHex], v); return *this;}NdbOut& NdbOut::operator<<(unsigned long int v) { return *this << (Uint64) v; }NdbOut& NdbOut::operator<<(const char* val){ m_out->print("%s", val ? val : "(null)"); return * this; }NdbOut& NdbOut::operator<<(const void* val){ m_out->print("%p", val); return * this; }NdbOut&NdbOut::operator<<(BaseString &val){ return *this << val.c_str(); }NdbOut& NdbOut::operator<<(float val){ m_out->print("%f", (double)val); return * this;}NdbOut& NdbOut::operator<<(double val){ m_out->print("%f", val); return * this; }NdbOut& NdbOut::endline(){ isHex = 0; // Reset hex to normal, if user forgot this m_out->println(""); m_out->flush(); return *this;}NdbOut& NdbOut::flushline(){ m_out->flush(); return *this;}NdbOut& NdbOut::setHexFormat(int _format){ isHex = (_format == 0 ? 0 : 1); return *this;}NdbOut::NdbOut(OutputStream & out) : m_out(& out){ isHex = 0;}NdbOut::~NdbOut(){}voidNdbOut::print(const char * fmt, ...){ va_list ap; char buf[1000]; va_start(ap, fmt); if (fmt != 0) BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap); ndbout << buf; va_end(ap);}voidNdbOut::println(const char * fmt, ...){ va_list ap; char buf[1000]; va_start(ap, fmt); if (fmt != 0) BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap); ndbout << buf << endl; va_end(ap);}extern "C"void ndbout_c(const char * fmt, ...){ va_list ap; char buf[1000]; va_start(ap, fmt); if (fmt != 0) BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap); ndbout << buf << endl; va_end(ap);}FilteredNdbOut::FilteredNdbOut(OutputStream & out, int threshold, int level) : NdbOut(out) { m_level = level; m_threshold = threshold; m_org = &out; m_null = new NullOutputStream(); setLevel(level);}FilteredNdbOut::~FilteredNdbOut(){ delete m_null;}voidFilteredNdbOut::setLevel(int i){ m_level = i; if(m_level >= m_threshold){ m_out = m_org; } else { m_out = m_null; }}voidFilteredNdbOut::setThreshold(int i){ m_threshold = i; setLevel(m_level);}intFilteredNdbOut::getLevel() const { return m_level;}intFilteredNdbOut::getThreshold() const { return m_threshold;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -