X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fmds%2FLogEvent.cc;fp=src%2Fceph%2Fsrc%2Fmds%2FLogEvent.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=90d84deaf29a218f5e25ea25468771074cc684ca;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/mds/LogEvent.cc b/src/ceph/src/mds/LogEvent.cc deleted file mode 100644 index 90d84de..0000000 --- a/src/ceph/src/mds/LogEvent.cc +++ /dev/null @@ -1,180 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#include "common/config.h" -#include "LogEvent.h" - -#include "MDSRank.h" - -// events i know of -#include "events/ESubtreeMap.h" -#include "events/EExport.h" -#include "events/EImportStart.h" -#include "events/EImportFinish.h" -#include "events/EFragment.h" - -#include "events/EResetJournal.h" -#include "events/ESession.h" -#include "events/ESessions.h" - -#include "events/EUpdate.h" -#include "events/ESlaveUpdate.h" -#include "events/EOpen.h" -#include "events/ECommitted.h" - -#include "events/ETableClient.h" -#include "events/ETableServer.h" - -#include "events/ENoOp.h" - -#define dout_context g_ceph_context - - -LogEvent *LogEvent::decode(bufferlist& bl) -{ - // parse type, length - bufferlist::iterator p = bl.begin(); - EventType type; - LogEvent *event = NULL; - ::decode(type, p); - - if (EVENT_NEW_ENCODING == type) { - try { - DECODE_START(1, p); - ::decode(type, p); - event = decode_event(bl, p, type); - DECODE_FINISH(p); - } - catch (const buffer::error &e) { - generic_dout(0) << "failed to decode LogEvent (type maybe " << type << ")" << dendl; - return NULL; - } - } else { // we are using classic encoding - event = decode_event(bl, p, type); - } - return event; -} - - -std::string LogEvent::get_type_str() const -{ - switch(_type) { - case EVENT_SUBTREEMAP: return "SUBTREEMAP"; - case EVENT_SUBTREEMAP_TEST: return "SUBTREEMAP_TEST"; - case EVENT_EXPORT: return "EXPORT"; - case EVENT_IMPORTSTART: return "IMPORTSTART"; - case EVENT_IMPORTFINISH: return "IMPORTFINISH"; - case EVENT_FRAGMENT: return "FRAGMENT"; - case EVENT_RESETJOURNAL: return "RESETJOURNAL"; - case EVENT_SESSION: return "SESSION"; - case EVENT_SESSIONS_OLD: return "SESSIONS_OLD"; - case EVENT_SESSIONS: return "SESSIONS"; - case EVENT_UPDATE: return "UPDATE"; - case EVENT_SLAVEUPDATE: return "SLAVEUPDATE"; - case EVENT_OPEN: return "OPEN"; - case EVENT_COMMITTED: return "COMMITTED"; - case EVENT_TABLECLIENT: return "TABLECLIENT"; - case EVENT_TABLESERVER: return "TABLESERVER"; - case EVENT_NOOP: return "NOOP"; - - default: - generic_dout(0) << "get_type_str: unknown type " << _type << dendl; - return "UNKNOWN"; - } -} - - -/* - * Resolve type string to type enum - * - * Return -1 if not found - */ -LogEvent::EventType LogEvent::str_to_type(std::string const &str) -{ - std::map types; - types["SUBTREEMAP"] = EVENT_SUBTREEMAP; - types["SUBTREEMAP_TEST"] = EVENT_SUBTREEMAP_TEST; - types["EXPORT"] = EVENT_EXPORT; - types["IMPORTSTART"] = EVENT_IMPORTSTART; - types["IMPORTFINISH"] = EVENT_IMPORTFINISH; - types["FRAGMENT"] = EVENT_FRAGMENT; - types["RESETJOURNAL"] = EVENT_RESETJOURNAL; - types["SESSION"] = EVENT_SESSION; - types["SESSIONS_OLD"] = EVENT_SESSIONS_OLD; - types["SESSIONS"] = EVENT_SESSIONS; - types["UPDATE"] = EVENT_UPDATE; - types["SLAVEUPDATE"] = EVENT_SLAVEUPDATE; - types["OPEN"] = EVENT_OPEN; - types["COMMITTED"] = EVENT_COMMITTED; - types["TABLECLIENT"] = EVENT_TABLECLIENT; - types["TABLESERVER"] = EVENT_TABLESERVER; - types["NOOP"] = EVENT_NOOP; - - return types[str]; -} - - -LogEvent *LogEvent::decode_event(bufferlist& bl, bufferlist::iterator& p, LogEvent::EventType type) -{ - int length = bl.length() - p.get_off(); - generic_dout(15) << "decode_log_event type " << type << ", size " << length << dendl; - - // create event - LogEvent *le; - switch (type) { - case EVENT_SUBTREEMAP: le = new ESubtreeMap; break; - case EVENT_SUBTREEMAP_TEST: - le = new ESubtreeMap; - le->set_type(type); - break; - case EVENT_EXPORT: le = new EExport; break; - case EVENT_IMPORTSTART: le = new EImportStart; break; - case EVENT_IMPORTFINISH: le = new EImportFinish; break; - case EVENT_FRAGMENT: le = new EFragment; break; - - case EVENT_RESETJOURNAL: le = new EResetJournal; break; - - case EVENT_SESSION: le = new ESession; break; - case EVENT_SESSIONS_OLD: le = new ESessions; (static_cast(le))->mark_old_encoding(); break; - case EVENT_SESSIONS: le = new ESessions; break; - - case EVENT_UPDATE: le = new EUpdate; break; - case EVENT_SLAVEUPDATE: le = new ESlaveUpdate; break; - case EVENT_OPEN: le = new EOpen; break; - case EVENT_COMMITTED: le = new ECommitted; break; - - case EVENT_TABLECLIENT: le = new ETableClient; break; - case EVENT_TABLESERVER: le = new ETableServer; break; - - case EVENT_NOOP: le = new ENoOp; break; - - default: - generic_dout(0) << "uh oh, unknown log event type " << type << " length " << length << dendl; - return NULL; - } - - // decode - try { - le->decode(p); - } - catch (const buffer::error &e) { - generic_dout(0) << "failed to decode LogEvent type " << type << dendl; - delete le; - return NULL; - } - - assert(p.end()); - return le; -} -