From 633e76c1d533c3d9c257b92df7ebdfd36c9fd8a0 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 29 十二月 2016 18:42:50 +0800 Subject: [PATCH] unify log --- RtspFace/PipeLine.cpp | 42 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 36 insertions(+), 6 deletions(-) diff --git a/RtspFace/PipeLine.cpp b/RtspFace/PipeLine.cpp index 8b1ffea..2491199 100644 --- a/RtspFace/PipeLine.cpp +++ b/RtspFace/PipeLine.cpp @@ -1,4 +1,5 @@ #include "PipeLine.h" +#include "logger.h" PipeMaterial::PipeMaterial() : type(PMT__FIRST), buffer(nullptr), buffSize(0), @@ -77,8 +78,35 @@ return elem; } +class PipeDebugger +{ +private: + PipeLine* pipeLine; + +public: + PipeLineElem* retElem; + PipeMaterial* pm; + + PipeDebugger(PipeLine* _pipeLine) : + pipeLine(_pipeLine), retElem(nullptr), pm(nullptr) + { + LOG(DEBUG) << "pipe line begin"; + } + + ~PipeDebugger() + { + bool retOK = (*(pipeLine->elems).rbegin() == retElem); + if (retOK) + LOG(DEBUG) << "pipe line end, ret OK"; + else + LOG(WARN) << "pipe line end, ret ERROR"; + } +}; + PipeLineElem* PipeLine::pipe(PipeMaterial* pm /*= nullptr*/) { + PipeDebugger debugger(this); + PipeLineElem* elem_begin = *elems.begin(); PipeLineElem* elem_last = *elems.rbegin(); @@ -88,12 +116,14 @@ uint8_t pmPlacement[sizeof(PipeMaterial)]; if (pm == nullptr) pm = new (pmPlacement) PipeMaterial; + + debugger.pm = pm; if (elems.size() == 1) { elem_begin->gain(*pm); pm->exec_deleter(); - return elem_begin; + return debugger.retElem = elem_begin; } else if (elems.size() == 2) { @@ -103,13 +133,13 @@ pm->exec_deleter(); } else - return elem_begin; - return elem_last; + return debugger.retElem = elem_begin; + return debugger.retElem = elem_last; } else { if (!elem_begin->gain(*pm)) - return elem_begin; + return debugger.retElem = elem_begin; bool lastRet = true; elem_vec_t::iterator iter = elems.begin(); @@ -123,7 +153,7 @@ lastRet = elem_begin->gain(*pm); } else - return elem_begin;//#todo this may memory leakage in pm + return debugger.retElem = elem_begin; ++iter; elem_begin = *iter; @@ -134,7 +164,7 @@ elem_last->pay(*pm); pm->exec_deleter(); } - return elem_last; + return debugger.retElem = elem_last; } return nullptr; -- Gitblit v1.8.0