summaryrefslogtreecommitdiff
path: root/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp')
-rw-r--r--storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp b/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp
new file mode 100644
index 00000000000..942baf2a9ad
--- /dev/null
+++ b/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp
@@ -0,0 +1,84 @@
+/* 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; version 2 of the License.
+
+ 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 SET_LOGLEVEL_ORD_HPP
+#define SET_LOGLEVEL_ORD_HPP
+
+#include <LogLevel.hpp>
+#include "EventSubscribeReq.hpp"
+#include "SignalData.hpp"
+
+/**
+ *
+ */
+class SetLogLevelOrd {
+ /**
+ * Sender(s)
+ */
+ friend class MgmtSrvr; /* XXX can probably be removed */
+ friend class MgmApiSession;
+ friend class CommandInterpreter;
+
+ /**
+ * Reciver(s)
+ */
+ friend class Cmvmi;
+
+ friend class NodeLogLevel;
+
+private:
+ STATIC_CONST( SignalLength = 1 + LogLevel::LOGLEVEL_CATEGORIES );
+
+ Uint32 noOfEntries;
+ Uint32 theData[LogLevel::LOGLEVEL_CATEGORIES];
+
+ void clear();
+
+ /**
+ * Note level is valid as 0-15
+ */
+ void setLogLevel(LogLevel::EventCategory ec, int level = 7);
+
+ SetLogLevelOrd& operator= (const LogLevel& ll){
+ noOfEntries = LogLevel::LOGLEVEL_CATEGORIES;
+ for(size_t i = 0; i<noOfEntries; i++){
+ theData[i] = (i << 16) | ll.getLogLevel((LogLevel::EventCategory)i);
+ }
+ return * this;
+ }
+
+ SetLogLevelOrd& operator= (const EventSubscribeReq& ll){
+ noOfEntries = ll.noOfEntries;
+ for(size_t i = 0; i<noOfEntries; i++){
+ theData[i] = ll.theData[i];
+ }
+ return * this;
+ }
+};
+
+inline
+void
+SetLogLevelOrd::clear(){
+ noOfEntries = 0;
+}
+
+inline
+void
+SetLogLevelOrd::setLogLevel(LogLevel::EventCategory ec, int level){
+ theData[noOfEntries] = (ec << 16) | level;
+ noOfEntries++;
+}
+
+#endif