added suspend/resume calls to log parser
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 15 Aug 2017 13:03:26 +0000 (16:03 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 15 Aug 2017 13:03:26 +0000 (16:03 +0300)
include/nxlpapi.h
src/libnxlp/parser.cpp

index 2b20759..5f0a034 100644 (file)
@@ -219,6 +219,7 @@ private:
        int m_recordsProcessed;
        int m_recordsMatched;
        bool m_processAllRules;
+   bool m_suspended;
        int m_traceLevel;
        void (*m_traceCallback)(int, const TCHAR *, va_list);
        TCHAR m_status[MAX_PARSER_STATUS_LEN];
@@ -303,6 +304,9 @@ public:
    int getRuleMatchCount(const TCHAR *ruleName, UINT32 objectId = 0) const { const LogParserRule *r = findRuleByName(ruleName); return (r != NULL) ? r->getMatchCount(objectId) : -1; }
 
    void restoreCounters(const LogParser *parser);
+
+   void suspend();
+   void resume();
 };
 
 /**
index f532858..175b41d 100644 (file)
@@ -118,6 +118,7 @@ LogParser::LogParser()
        m_recordsProcessed = 0;
        m_recordsMatched = 0;
        m_processAllRules = false;
+   m_suspended = false;
        m_traceLevel = 0;
        m_traceCallback = NULL;
        _tcscpy(m_status, LPS_INIT);
@@ -163,6 +164,7 @@ LogParser::LogParser(const LogParser *src)
        m_recordsProcessed = 0;
        m_recordsMatched = 0;
        m_processAllRules = src->m_processAllRules;
+   m_suspended = src->m_suspended;
        m_traceLevel = src->m_traceLevel;
        m_traceCallback = src->m_traceCallback;
        _tcscpy(m_status, LPS_INIT);
@@ -897,6 +899,9 @@ int LogParser::getCharSize() const
  */
 bool LogParser::isExclusionPeriod()
 {
+   if (m_suspended)
+      return true;
+
    if (m_exclusionSchedules.isEmpty())
       return false;
 
@@ -914,3 +919,19 @@ bool LogParser::isExclusionPeriod()
    }
    return false;
 }
+
+/**
+ * Suspend parser
+ */
+void LogParser::suspend()
+{
+   m_suspended = true;
+}
+
+/**
+ * Resume parser
+ */
+void LogParser::resume()
+{
+   m_suspended = false;
+}