mariadb/storage/ndb/include/util/NdbOut.hpp

133 lines
3.1 KiB
C++
Raw Normal View History

/* 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 */
#ifndef NDBOUT_H
#define NDBOUT_H
#ifdef __cplusplus
#include <ndb_types.h>
#include <util/BaseString.hpp>
/**
* Class used for outputting logging messages to screen.
* Since the output capabilities are different on different platforms
* this middle layer class should be used for all output messages
*/
/*
Example usage:
#include "NdbOut.hpp"
/ * Use ndbout as you would use cout:
ndbout << "Hello World! "<< 1 << " Hello again"
<< 67 << anIntegerVar << "Hup << endl;
/ * Use ndbout_c as you would use printf:
ndbout_c("Hello World %d\n", 1);
*/
class NdbOut;
class OutputStream;
class NullOutputStream;
/* Declare a static variable of NdbOut as ndbout */
extern NdbOut ndbout;
class NdbOut
{
public:
NdbOut& operator<<(NdbOut& (* _f)(NdbOut&));
NdbOut& operator<<(Int8);
NdbOut& operator<<(Uint8);
NdbOut& operator<<(Int16);
NdbOut& operator<<(Uint16);
NdbOut& operator<<(Int32);
NdbOut& operator<<(Uint32);
NdbOut& operator<<(Int64);
NdbOut& operator<<(Uint64);
NdbOut& operator<<(long unsigned int);
NdbOut& operator<<(const char*);
NdbOut& operator<<(const unsigned char*);
NdbOut& operator<<(BaseString &);
NdbOut& operator<<(const void*);
NdbOut& operator<<(float);
NdbOut& operator<<(double);
NdbOut& endline(void);
NdbOut& flushline(void);
NdbOut& setHexFormat(int _format);
NdbOut(OutputStream &);
virtual ~NdbOut();
void print(const char * fmt, ...);
void println(const char * fmt, ...);
OutputStream * m_out;
private:
int isHex;
};
inline NdbOut& NdbOut::operator<<(NdbOut& (* _f)(NdbOut&)) {
(* _f)(*this);
return * this;
}
inline NdbOut& endl(NdbOut& _NdbOut) {
return _NdbOut.endline();
}
inline NdbOut& flush(NdbOut& _NdbOut) {
return _NdbOut.flushline();
}
inline NdbOut& hex(NdbOut& _NdbOut) {
return _NdbOut.setHexFormat(1);
}
inline NdbOut& dec(NdbOut& _NdbOut) {
return _NdbOut.setHexFormat(0);
}
extern "C"
Fixed a LOT of compiler warnings Added missing DBUG_RETURN statements (in mysqldump.c) Added missing enums Fixed a lot of wrong DBUG_PRINT() statements, some of which could cause crashes Removed usage of %lld and %p in printf strings as these are not portable or produces different results on different systems. client/mysqldump.c: Fixed some compiler warnings Added some missing DBUG_RETURN Remove copying of 'cluster' database client/mysqlslap.c: Fixed compiler warnings client/mysqltest.c: After merge fix extra/yassl/taocrypt/include/algebra.hpp: Removed compiler warning mysql-test/include/im_check_env.inc: Fixed race condition (mysqld1 could report 'starting' or 'online' mysql-test/mysql-test-run.pl: After merge fixes Added missing directory to LD_LIBRARY_PATH mysql-test/r/ctype_cp1250_ch.result: After merge fix mysql-test/r/im_cmd_line.result: Fixed race condition mysql-test/r/im_daemon_life_cycle.result: Fixed race condition mysql-test/r/im_instance_conf.result: Fixed race condition mysql-test/r/im_life_cycle.result: Fixed race condition mysql-test/r/im_utils.result: Fixed race condition mysql-test/r/log_tables.result: Fixed wrong result mysql-test/t/disabled.def: Disabled ndb_restore_partion, as ndb_restore_compate caused it to fail, becasue of table 'cluster/def/schema' which is stored in ndb_backup50 mysys/my_compress.c: Removed compiler warnings mysys/my_getopt.c: Ensure we always have at least one space between option name and value plugin/fulltext/plugin_example.c: Removed compiler warnings server-tools/instance-manager/mysql_connection.cc: After merge fix sql/event_data_objects.cc: Fixed compiler warnings Fixed platform compatibility issues (%lld is not portable) sql/event_data_objects.h: Fixed compiler warnings sql/event_db_repository.cc: Fixed compiler warnings sql/event_queue.cc: Fixed compiler warnings sql/event_scheduler.cc: Fixed compiler warnings sql/events.cc: Fixed compiler warnings sql/field.cc: Fixed compiler warnings sql/ha_ndbcluster.cc: Fixed compiler warnings sql/ha_ndbcluster_binlog.cc: Fixed compiler warnings sql/ha_partition.cc: Fixed compiler warnings sql/handler.cc: Fixed compiler warnings sql/item_cmpfunc.cc: Fixed DBUG_PRINT style sql/item_func.cc: Fixed compiler warnings sql/log.cc: Fixed compiler warnings sql/log_event.cc: Fixed compiler warnings sql/mysqld.cc: Fixed compiler warnings sql/opt_range.cc: Fixed compiler warnings sql/repl_failsafe.cc: Indentation fixes sql/rpl_rli.cc: Fixed compiler warnings sql/rpl_tblmap.cc: Fixed compiler warnings sql/set_var.cc: Fixed compiler warnings sql/slave.cc: Fixed compiler warnings sql/sp_head.cc: Fixed compiler warnings sql/sql_base.cc: Fixed compiler warnings Fixed indentation sql/sql_binlog.cc: Fixed compiler warnings sql/sql_cache.cc: Fixed compiler warnings sql/sql_class.cc: Fixed compiler warnings sql/sql_handler.cc: Fixed compiler warnings sql/sql_lex.cc: Fixed compiler warnings sql/sql_parse.cc: Fixed compiler warnings sql/sql_partition.cc: Fixed compiler warnings sql/sql_prepare.cc: Fixed compiler warnings sql/sql_table.cc: Fixed compiler warnings sql/sql_test.cc: Fixed DBUG_PRINT style sql/sql_trigger.cc: Fixed DBUG_PRINT style sql/table.cc: Fixed compiler warnings storage/federated/ha_federated.cc: Fixed compiler warnings storage/myisam/mi_rsamepos.c: Fixed compiler warnings storage/ndb/include/ndb_global.h.in: After merge fix storage/ndb/include/util/NdbOut.hpp: Inform gcc that ndbout_c takes a printf() string as argument storage/ndb/include/util/SimpleProperties.hpp: After merge fixes storage/ndb/src/kernel/blocks/backup/Backup.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Fixed compiler warnings Fixed usage of uninitialized value (Got help from Jonas with patch) storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/lgman.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/pgman.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/restore.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp: Fixed compiler warnings storage/ndb/src/kernel/blocks/suma/Suma.cpp: Fixed compiler warnings Added missing enum's to switch storage/ndb/src/kernel/vm/Configuration.cpp: Fixed compiler warnings storage/ndb/src/kernel/vm/DLHashTable.hpp: Fixed compiler warnings storage/ndb/src/kernel/vm/RWPool.hpp: Fixed compiler warnings storage/ndb/src/kernel/vm/SimulatedBlock.cpp: Fixed compiler warnings storage/ndb/src/kernel/vm/WOPool.hpp: Fixed compiler warnings storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp: Fixed compiler warnings storage/ndb/src/mgmclient/CommandInterpreter.cpp: Fixed compiler warnings storage/ndb/src/mgmsrv/MgmtSrvr.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/DictCache.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/NdbIndexOperation.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/NdbIndexStat.cpp: Initialize possible uninitialized variable storage/ndb/src/ndbapi/NdbOperationInt.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/NdbRecAttr.cpp: Added missing enum's (To avoid compiler warnings) storage/ndb/src/ndbapi/NdbScanOperation.cpp: Fixed compiler warnings storage/ndb/src/ndbapi/ObjectMap.hpp: Fixed compiler warnings storage/ndb/tools/desc.cpp: Fixed compiler warnings storage/ndb/tools/restore/Restore.cpp: Fixed compiler warnings storage/ndb/tools/restore/consumer_restore.cpp: Fixed compiler warnings unittest/mytap/t/basic-t.c: Fixed compiler warnings unittest/mytap/tap.c: Fixed compiler warnings
2006-11-27 01:47:38 +02:00
void ndbout_c(const char * fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
class FilteredNdbOut : public NdbOut {
public:
FilteredNdbOut(OutputStream &, int threshold = 0, int level = 0);
virtual ~FilteredNdbOut();
void setLevel(int i);
void setThreshold(int i);
int getLevel() const;
int getThreshold() const;
private:
int m_threshold, m_level;
OutputStream * m_org;
NullOutputStream * m_null;
};
#else
void ndbout_c(const char * fmt, ...);
#endif
#endif