diff --git a/doxygen/metrics.dox b/doxygen/metrics.dox index 01e39b89..40ad864c 100644 --- a/doxygen/metrics.dox +++ b/doxygen/metrics.dox @@ -1,212 +1,212 @@ -/** @page metrics Code Metrics - -@code{cpp} - Code Metrics for QP/C++ -================================================ - NLOC CCN token PARAM length location ------------------------------------------------- - 3 1 14 1 4 QP::QEvt::QEvt@159-162@..\include\qep.hpp - 3 1 11 1 3 QP::QEQueue::getNFree@223-225@..\include\qequeue.hpp - 3 1 11 1 3 QP::QEQueue::getNMin@238-240@..\include\qequeue.hpp - 3 1 13 1 3 QP::QEQueue::isEmpty@252-254@..\include\qequeue.hpp - 6 1 51 5 6 QP::QActive::start@200-205@..\include\qf.hpp - 3 1 19 1 3 QP::QActive::getPrio@246-248@..\include\qf.hpp - 3 1 22 1 3 QP::QActive::setPrio@251-253@..\include\qf.hpp - 1 1 10 1 1 QP::QActive::getOsObject@261-261@..\include\qf.hpp - 1 1 10 1 1 QP::QActive::getThread@267-267@..\include\qf.hpp - 3 1 13 1 3 QP::QMActive::stateObj@336-338@..\include\qf.hpp - 3 1 17 1 3 QP::QTimeEvt::toActive@452-454@..\include\qf.hpp - 3 1 17 1 3 QP::QTimeEvt::toTimeEvt@457-459@..\include\qf.hpp - 3 1 10 1 3 QP::QF::getVersion@488-490@..\include\qf.hpp - 1 1 14 1 1 QP::QTicker::init@632-632@..\include\qf.hpp - 3 1 10 1 3 QP::QK::getVersion@160-162@..\include\qk.hpp - 3 1 11 1 3 QP::QMPool::getBlockSize@149-151@..\include\qmpool.hpp - 3 1 11 1 3 QP::QPSet::setEmpty@81-83@..\include\qpset.hpp - 3 1 15 1 3 QP::QPSet::isEmpty@86-88@..\include\qpset.hpp - 3 1 15 1 3 QP::QPSet::notEmpty@91-93@..\include\qpset.hpp - 3 1 30 1 3 QP::QPSet::hasElement@96-98@..\include\qpset.hpp - 3 1 24 1 3 QP::QPSet::insert@101-103@..\include\qpset.hpp - 4 1 36 1 4 QP::QPSet::rmove@109-112@..\include\qpset.hpp - 3 1 14 1 3 QP::QPSet::findMax@114-116@..\include\qpset.hpp - 4 1 21 1 4 QP::QPSet::setEmpty@135-138@..\include\qpset.hpp - 3 2 29 1 3 QP::QPSet::isEmpty@142-144@..\include\qpset.hpp - 3 2 29 1 3 QP::QPSet::notEmpty@148-150@..\include\qpset.hpp - 7 2 79 1 7 QP::QPSet::hasElement@153-159@..\include\qpset.hpp - 8 2 70 1 8 QP::QPSet::insert@162-169@..\include\qpset.hpp - 8 2 74 1 8 QP::QPSet::rmove@175-182@..\include\qpset.hpp - 5 2 40 1 5 QP::QPSet::findMax@185-189@..\include\qpset.hpp - 7 1 28 1 7 QP::QS::force_cast@499-505@..\include\qs.hpp - 14 4 87 1 14 QP::QS::rxPut@563-576@..\include\qs.hpp - 6 1 51 5 6 QP::QActiveDummy::start@597-602@..\include\qs.hpp - 1 1 14 1 1 QP::QActiveDummy::init@605-605@..\include\qs.hpp - 1 1 14 1 1 QP::QXThread::init@86-86@..\include\qxthread.hpp - 6 1 51 5 6 QP::QXThread::start@99-104@..\include\qxthread.hpp - 4 1 27 1 4 QP::QHsm::QHsm@119-122@..\src\qf\qep_hsm.cpp - 2 1 8 0 2 QP::QHsm::~QHsm@128-129@..\src\qf\qep_hsm.cpp - 48 7 342 1 68 QP::QHsm::init@140-207@..\src\qf\qep_hsm.cpp - 5 1 31 2 5 QP::QHsm::top@224-228@..\src\qf\qep_hsm.cpp - 109 15 671 1 153 QP::QHsm::dispatch@241-393@..\src\qf\qep_hsm.cpp - 95 15 452 1 128 QP::QHsm::hsm_tran@406-533@..\src\qf\qep_hsm.cpp - 16 3 85 1 23 QP::QHsm::isIn@548-570@..\src\qf\qep_hsm.cpp - 20 4 105 1 28 QP::QHsm::childState@591-618@..\src\qf\qep_hsm.cpp - 6 1 29 1 6 QP::QMsm::QMsm@83-88@..\src\qf\qep_msm.cpp - 23 3 174 1 36 QP::QMsm::init@100-135@..\src\qf\qep_msm.cpp - 117 21 675 1 169 QP::QMsm::dispatch@147-315@..\src\qf\qep_msm.cpp - 53 9 342 1 65 QP::QMsm::execTatbl_@330-394@..\src\qf\qep_msm.cpp - 20 4 110 2 26 QP::QMsm::exitToTranSource_@405-430@..\src\qf\qep_msm.cpp - 42 6 252 1 50 QP::QMsm::enterHistory_@443-492@..\src\qf\qep_msm.cpp - 13 3 59 1 14 QP::QMsm::isInState@507-520@..\src\qf\qep_msm.cpp - 21 4 87 1 27 QP::QMsm::childStateObj@537-563@..\src\qf\qep_msm.cpp - 9 3 69 1 10 QP::QF::add_@79-88@..\src\qf\qf_act.cpp - 10 3 80 1 12 QP::QF::remove_@103-114@..\src\qf\qf_act.cpp - 7 2 63 2 7 QP::QF::bzero@129-135@..\src\qf\qf_act.cpp - 24 6 155 1 29 QF_LOG2@151-179@..\src\qf\qf_act.cpp - 86 15 467 3 124 QP::QActive::post_@92-215@..\src\qf\qf_actq.cpp - 45 8 268 1 67 QP::QActive::postLIFO@231-297@..\src\qf\qf_actq.cpp - 36 3 223 1 48 QP::QActive::get_@318-365@..\src\qf\qf_actq.cpp - 10 2 68 1 13 QP::QF::getQueueMin@385-397@..\src\qf\qf_actq.cpp - 5 1 30 1 6 QP::QTicker::QTicker@400-405@..\src\qf\qf_actq.cpp - 4 1 24 1 4 QP::QTicker::init@407-410@..\src\qf\qf_actq.cpp - 11 2 71 1 13 QP::QTicker::dispatch@412-424@..\src\qf\qf_actq.cpp - 28 3 157 3 40 QP::QTicker::post_@430-469@..\src\qf\qf_actq.cpp - 4 1 23 1 4 QP::QTicker::postLIFO@472-475@..\src\qf\qf_actq.cpp - 12 1 85 2 14 QP::QActive::defer@77-90@..\src\qf\qf_defer.cpp - 34 3 178 1 51 QP::QActive::recall@113-163@..\src\qf\qf_defer.cpp - 8 2 60 1 8 QP::QActive::flushDeferred@180-187@..\src\qf\qf_defer.cpp - 21 4 159 3 29 QP::QF::poolInit@84-112@..\src\qf\qf_dyn.cpp - 28 5 177 3 37 QP::QF::newX_@140-176@..\src\qf\qf_dyn.cpp - 28 4 171 1 46 QP::QF::gc@201-246@..\src\qf\qf_dyn.cpp - 16 2 88 2 23 QP::QF::newRef_@262-284@..\src\qf\qf_dyn.cpp - 9 1 52 1 11 QP::QF::deleteRef_@296-306@..\src\qf\qf_dyn.cpp - 3 1 20 1 3 QP::QF::poolGetMaxBlockSize@312-314@..\src\qf\qf_dyn.cpp - 9 1 40 1 9 QP::QMPool::QMPool@63-71@..\src\qf\qf_mem.cpp - 31 5 228 3 53 QP::QMPool::init@103-155@..\src\qf\qf_mem.cpp - 17 2 102 1 24 QP::QMPool::put@173-196@..\src\qf\qf_mem.cpp - 41 4 214 1 63 QP::QMPool::get@222-284@..\src\qf\qf_mem.cpp - 11 3 74 1 14 QP::QF::getPoolMin@299-312@..\src\qf\qf_mem.cpp - 7 1 39 2 11 QP::QF::psInit@89-99@..\src\qf\qf_ps.cpp - 90 17 623 1 201 QP::QF::publish_@119-319@..\src\qf\qf_ps.cpp - 8 3 59 1 14 QP::QActive::QActive@44-57@..\src\qf\qf_qact.cpp - 9 1 41 1 9 QP::QEQueue::QEQueue@58-66@..\src\qf\qf_qeq.cpp - 13 2 74 2 13 QP::QEQueue::init@84-96@..\src\qf\qf_qeq.cpp - 56 8 285 2 75 QP::QEQueue::post@120-194@..\src\qf\qf_qeq.cpp - 33 5 171 1 44 QP::QEQueue::postLIFO@217-260@..\src\qf\qf_qeq.cpp - 39 4 201 1 48 QP::QEQueue::get@278-325@..\src\qf\qf_qeq.cpp - 5 1 22 1 5 QP::QMActive::QMActive@61-65@..\src\qf\qf_qmact.cpp - 4 1 33 1 4 QP::QMActive::init@68-71@..\src\qf\qf_qmact.cpp - 3 1 19 1 3 QP::QMActive::init@73-75@..\src\qf\qf_qmact.cpp - 3 1 24 1 3 QP::QMActive::dispatch@77-79@..\src\qf\qf_qmact.cpp - 3 1 27 1 3 QP::QMActive::isInState@81-83@..\src\qf\qf_qmact.cpp - 5 1 27 1 5 QP::QMActive::childStateObj@85-89@..\src\qf\qf_qmact.cpp - 69 7 375 2 100 QP::QF::tickX_@79-178@..\src\qf\qf_time.cpp - 13 3 61 1 13 QP::QF::noTimeEvtsActiveX@205-217@..\src\qf\qf_time.cpp - 16 2 100 3 32 QP::QTimeEvt::QTimeEvt@230-261@..\src\qf\qf_time.cpp - 13 1 49 0 27 QP::QTimeEvt::QTimeEvt@267-293@..\src\qf\qf_time.cpp - 33 7 205 2 57 QP::QTimeEvt::armX@321-377@..\src\qf\qf_time.cpp - 31 2 143 1 37 QP::QTimeEvt::disarm@395-431@..\src\qf\qf_time.cpp - 33 7 199 1 58 QP::QTimeEvt::rearm@453-510@..\src\qf\qf_time.cpp - 5 1 28 1 5 QP::QTimeEvt::wasDisarmed@532-536@..\src\qf\qf_time.cpp - 7 1 28 1 9 QP::QTimeEvt::currCtr@551-559@..\src\qf\qf_time.cpp - 11 2 79 1 16 QP::QF::init@78-93@..\src\qk\qk.cpp - 3 1 14 1 4 QP::QF::stop@106-109@..\src\qk\qk.cpp - 6 2 26 1 8 QP::initial_events@114-121@..\src\qk\qk.cpp - 10 3 40 1 14 QP::QF::run@132-145@..\src\qk\qk.cpp - 21 5 139 6 30 QP::QActive::start@164-193@..\src\qk\qk.cpp - 21 2 138 1 32 QP::QK::schedLock@218-249@..\src\qk\qk.cpp - 22 4 149 1 33 QP::QK::schedUnlock@268-300@..\src\qk\qk.cpp - 14 3 94 1 17 QK_sched_@320-336@..\src\qk\qk.cpp - 61 15 421 1 105 QK_activate_@347-451@..\src\qk\qk.cpp - 9 2 67 1 13 QP::QF::init@79-91@..\src\qv\qv.cpp - 3 1 12 1 4 QP::QF::stop@104-107@..\src\qv\qv.cpp - 37 9 198 1 71 QP::QF::run@125-195@..\src\qv\qv.cpp - 15 3 109 6 22 QP::QActive::start@215-236@..\src\qv\qv.cpp - 2 1 10 0 2 QP::QXKIdleThread::QXKIdleThread@68-69@..\src\qxk\qxk.cpp - 14 2 103 1 22 QP::QF::init@85-106@..\src\qxk\qxk.cpp - 3 1 12 1 4 QP::QF::stop@119-122@..\src\qxk\qxk.cpp - 6 2 26 1 8 QP::initial_events@127-134@..\src\qxk\qxk.cpp - 10 3 40 1 15 QP::QF::run@143-157@..\src\qxk\qxk.cpp - 24 6 161 6 34 QP::QActive::start@174-207@..\src\qxk\qxk.cpp - 24 3 150 1 34 QP::QXK::schedLock@230-263@..\src\qxk\qxk.cpp - 22 4 149 1 34 QP::QXK::schedUnlock@282-315@..\src\qxk\qxk.cpp - 51 7 296 1 70 QXK_sched_@335-404@..\src\qxk\qxk.cpp - 79 16 547 1 135 QXK_activate_@415-549@..\src\qxk\qxk.cpp - 13 2 72 1 20 QXK_current@552-571@..\src\qxk\qxk.cpp - 16 4 105 1 24 QP::QXMutex::init@84-107@..\src\qxk\qxk_mutex.cpp - 66 12 456 1 108 QP::QXMutex::lock@129-236@..\src\qxk\qxk_mutex.cpp - 47 10 301 1 71 QP::QXMutex::tryLock@256-326@..\src\qxk\qxk_mutex.cpp - 68 16 460 1 115 QP::QXMutex::unlock@345-459@..\src\qxk\qxk_mutex.cpp - 8 1 55 2 10 QP::QXSemaphore::init@77-86@..\src\qxk\qxk_sema.cpp - 43 7 274 1 68 QP::QXSemaphore::wait@109-176@..\src\qxk\qxk_sema.cpp - 15 2 55 1 20 QP::QXSemaphore::tryWait@191-210@..\src\qxk\qxk_sema.cpp - 27 6 169 1 46 QP::QXSemaphore::signal@230-275@..\src\qxk\qxk_sema.cpp - 8 1 54 2 8 QP::QXThread::QXThread@90-97@..\src\qxk\qxk_xthr.cpp - 4 1 23 1 4 QP::QXThread::init@101-104@..\src\qxk\qxk_xthr.cpp - 4 1 23 1 4 QP::QXThread::dispatch@107-110@..\src\qxk\qxk_xthr.cpp - 25 6 185 6 44 QP::QXThread::start@133-176@..\src\qxk\qxk_xthr.cpp - 97 13 486 3 130 QP::QXThread::post_@212-341@..\src\qxk\qxk_xthr.cpp - 4 1 23 1 4 QP::QXThread::postLIFO@352-355@..\src\qxk\qxk_xthr.cpp - 60 7 436 1 87 QP::QXThread::queueGet@377-463@..\src\qxk\qxk_xthr.cpp - 5 1 47 1 6 QP::QXThread::block_@472-477@..\src\qxk\qxk_xthr.cpp - 8 3 56 1 9 QP::QXThread::unblock_@486-494@..\src\qxk\qxk_xthr.cpp - 18 3 135 2 33 QP::QXThread::teArm_@504-536@..\src\qxk\qxk_xthr.cpp - 11 2 42 1 14 QP::QXThread::teDisarm_@545-558@..\src\qxk\qxk_xthr.cpp - 20 3 169 1 34 QP::QXThread::delay@562-595@..\src\qxk\qxk_xthr.cpp - 14 2 58 1 16 QP::QXThread::delayCancel@599-614@..\src\qxk\qxk_xthr.cpp - 14 2 108 1 23 QXK_threadRet_@631-653@..\src\qxk\qxk_xthr.cpp - 3 1 16 1 3 QP::QF_EVT_POOL_ID_@140-142@..\src\qf_pkg.hpp - 3 1 16 1 3 QP::QF_EVT_REF_CTR_@145-147@..\src\qf_pkg.hpp - 3 1 21 1 3 QP::QF_EVT_REF_CTR_INC_@150-152@..\src\qf_pkg.hpp - 3 1 21 1 3 QP::QF_EVT_REF_CTR_DEC_@155-157@..\src\qf_pkg.hpp -36 file analyzed. -============================================================== -NLOC Avg.NLOC AvgCCN Avg.token function_cnt file --------------------------------------------------------------- - 5 0.0 0.0 0.0 0 ..\include\qassert.h - 214 3.0 1.0 14.0 1 ..\include\qep.hpp - 38 3.0 1.0 11.7 3 ..\include\qequeue.hpp - 188 2.7 1.0 18.3 10 ..\include\qf.hpp - 32 3.0 1.0 10.0 1 ..\include\qk.hpp - 34 3.0 1.0 11.0 1 ..\include\qmpool.hpp - 1 0.0 0.0 0.0 0 ..\include\qpcpp.h - 4 0.0 0.0 0.0 0 ..\include\qpcpp.hpp - 72 4.3 1.4 34.8 14 ..\include\qpset.hpp - 319 7.0 1.8 45.0 4 ..\include\qs.hpp - 6 0.0 0.0 0.0 0 ..\include\qstamp.cpp - 0 0.0 0.0 0.0 0 ..\include\qs_dummy.hpp - 12 0.0 0.0 0.0 0 ..\include\qv.hpp - 32 0.0 0.0 0.0 0 ..\include\qxk.hpp - 62 3.5 1.0 32.5 2 ..\include\qxthread.hpp - 320 37.4 5.9 215.1 8 ..\src\qf\qep_hsm.cpp - 310 36.9 6.4 216.0 8 ..\src\qf\qep_msm.cpp - 62 12.5 3.5 91.8 4 ..\src\qf\qf_act.cpp - 242 25.4 4.0 147.9 9 ..\src\qf\qf_actq.cpp - 63 18.0 2.0 107.7 3 ..\src\qf\qf_defer.cpp - 116 17.5 2.8 111.2 6 ..\src\qf\qf_dyn.cpp - 118 21.8 3.0 131.6 5 ..\src\qf\qf_mem.cpp - 107 48.5 9.0 331.0 2 ..\src\qf\qf_ps.cpp - 11 8.0 3.0 59.0 1 ..\src\qf\qf_qact.cpp - 159 30.0 4.0 154.4 5 ..\src\qf\qf_qeq.cpp - 27 3.8 1.0 25.3 6 ..\src\qf\qf_qmact.cpp - 231 24.4 3.4 132.0 9 ..\src\qf\qf_time.cpp - 184 18.8 4.1 122.2 9 ..\src\qk\qk.cpp - 76 16.0 3.8 96.5 4 ..\src\qv\qv.cpp - 267 22.5 4.3 142.4 11 ..\src\qxk\qxk.cpp - 206 49.2 10.5 330.5 4 ..\src\qxk\qxk_mutex.cpp - 102 23.2 4.0 138.2 4 ..\src\qxk\qxk_sema.cpp - 305 20.9 3.3 131.8 14 ..\src\qxk\qxk_xthr.cpp - 24 3.0 1.0 18.5 4 ..\src\qf_pkg.hpp - 9 0.0 0.0 0.0 0 ..\src\qs_pkg.hpp - 13 0.0 0.0 0.0 0 ..\src\qxk_pkg.hpp - -========================================================================================================= -!!!! Warnings (cyclomatic_complexity > 20 or nloc > 1000000 or length > 500 or parameter_count > 10) !!!! -================================================ - NLOC CCN token PARAM length location ------------------------------------------------- - 117 21 675 1 169 QP::QMsm::dispatch@147-315@..\src\qf\qep_msm.cpp -========================================================================================== -Total nloc Avg.NLOC AvgCCN Avg.token Fun Cnt Warning cnt Fun Rt nloc Rt ------------------------------------------------------------------------------------------- - 3971 18.8 3.4 114.9 152 1 0.01 0.04 -@endcode -*/ +/** @page metrics Code Metrics + +@code{cpp} + Code Metrics for QP/C++ +================================================ + NLOC CCN token PARAM length location +------------------------------------------------ + 3 1 14 1 4 QP::QEvt::QEvt@159-162@..\include\qep.hpp + 3 1 11 1 3 QP::QEQueue::getNFree@223-225@..\include\qequeue.hpp + 3 1 11 1 3 QP::QEQueue::getNMin@238-240@..\include\qequeue.hpp + 3 1 13 1 3 QP::QEQueue::isEmpty@252-254@..\include\qequeue.hpp + 6 1 51 5 6 QP::QActive::start@200-205@..\include\qf.hpp + 3 1 19 1 3 QP::QActive::getPrio@246-248@..\include\qf.hpp + 3 1 22 1 3 QP::QActive::setPrio@251-253@..\include\qf.hpp + 1 1 10 1 1 QP::QActive::getOsObject@261-261@..\include\qf.hpp + 1 1 10 1 1 QP::QActive::getThread@267-267@..\include\qf.hpp + 3 1 13 1 3 QP::QMActive::stateObj@336-338@..\include\qf.hpp + 3 1 17 1 3 QP::QTimeEvt::toActive@452-454@..\include\qf.hpp + 3 1 17 1 3 QP::QTimeEvt::toTimeEvt@457-459@..\include\qf.hpp + 3 1 10 1 3 QP::QF::getVersion@488-490@..\include\qf.hpp + 1 1 14 1 1 QP::QTicker::init@632-632@..\include\qf.hpp + 3 1 10 1 3 QP::QK::getVersion@160-162@..\include\qk.hpp + 3 1 11 1 3 QP::QMPool::getBlockSize@149-151@..\include\qmpool.hpp + 3 1 11 1 3 QP::QPSet::setEmpty@81-83@..\include\qpset.hpp + 3 1 15 1 3 QP::QPSet::isEmpty@86-88@..\include\qpset.hpp + 3 1 15 1 3 QP::QPSet::notEmpty@91-93@..\include\qpset.hpp + 3 1 30 1 3 QP::QPSet::hasElement@96-98@..\include\qpset.hpp + 3 1 24 1 3 QP::QPSet::insert@101-103@..\include\qpset.hpp + 4 1 36 1 4 QP::QPSet::rmove@109-112@..\include\qpset.hpp + 3 1 14 1 3 QP::QPSet::findMax@114-116@..\include\qpset.hpp + 4 1 21 1 4 QP::QPSet::setEmpty@135-138@..\include\qpset.hpp + 3 2 29 1 3 QP::QPSet::isEmpty@142-144@..\include\qpset.hpp + 3 2 29 1 3 QP::QPSet::notEmpty@148-150@..\include\qpset.hpp + 7 2 79 1 7 QP::QPSet::hasElement@153-159@..\include\qpset.hpp + 8 2 70 1 8 QP::QPSet::insert@162-169@..\include\qpset.hpp + 8 2 74 1 8 QP::QPSet::rmove@175-182@..\include\qpset.hpp + 5 2 40 1 5 QP::QPSet::findMax@185-189@..\include\qpset.hpp + 7 1 28 1 7 QP::QS::force_cast@499-505@..\include\qs.hpp + 14 4 87 1 14 QP::QS::rxPut@563-576@..\include\qs.hpp + 6 1 51 5 6 QP::QActiveDummy::start@597-602@..\include\qs.hpp + 1 1 14 1 1 QP::QActiveDummy::init@605-605@..\include\qs.hpp + 1 1 14 1 1 QP::QXThread::init@86-86@..\include\qxthread.hpp + 6 1 51 5 6 QP::QXThread::start@99-104@..\include\qxthread.hpp + 4 1 27 1 4 QP::QHsm::QHsm@119-122@..\src\qf\qep_hsm.cpp + 2 1 8 0 2 QP::QHsm::~QHsm@128-129@..\src\qf\qep_hsm.cpp + 48 7 342 1 68 QP::QHsm::init@140-207@..\src\qf\qep_hsm.cpp + 5 1 31 2 5 QP::QHsm::top@224-228@..\src\qf\qep_hsm.cpp + 109 15 671 1 153 QP::QHsm::dispatch@241-393@..\src\qf\qep_hsm.cpp + 95 15 452 1 128 QP::QHsm::hsm_tran@406-533@..\src\qf\qep_hsm.cpp + 16 3 85 1 23 QP::QHsm::isIn@548-570@..\src\qf\qep_hsm.cpp + 20 4 105 1 28 QP::QHsm::childState@591-618@..\src\qf\qep_hsm.cpp + 6 1 29 1 6 QP::QMsm::QMsm@83-88@..\src\qf\qep_msm.cpp + 23 3 174 1 36 QP::QMsm::init@100-135@..\src\qf\qep_msm.cpp + 117 21 675 1 169 QP::QMsm::dispatch@147-315@..\src\qf\qep_msm.cpp + 53 9 342 1 65 QP::QMsm::execTatbl_@330-394@..\src\qf\qep_msm.cpp + 20 4 110 2 26 QP::QMsm::exitToTranSource_@405-430@..\src\qf\qep_msm.cpp + 42 6 252 1 50 QP::QMsm::enterHistory_@443-492@..\src\qf\qep_msm.cpp + 13 3 59 1 14 QP::QMsm::isInState@507-520@..\src\qf\qep_msm.cpp + 21 4 87 1 27 QP::QMsm::childStateObj@537-563@..\src\qf\qep_msm.cpp + 9 3 69 1 10 QP::QF::add_@79-88@..\src\qf\qf_act.cpp + 10 3 80 1 12 QP::QF::remove_@103-114@..\src\qf\qf_act.cpp + 7 2 63 2 7 QP::QF::bzero@129-135@..\src\qf\qf_act.cpp + 24 6 155 1 29 QF_LOG2@151-179@..\src\qf\qf_act.cpp + 86 15 467 3 124 QP::QActive::post_@92-215@..\src\qf\qf_actq.cpp + 45 8 268 1 67 QP::QActive::postLIFO@231-297@..\src\qf\qf_actq.cpp + 36 3 223 1 48 QP::QActive::get_@318-365@..\src\qf\qf_actq.cpp + 10 2 68 1 13 QP::QF::getQueueMin@385-397@..\src\qf\qf_actq.cpp + 5 1 30 1 6 QP::QTicker::QTicker@400-405@..\src\qf\qf_actq.cpp + 4 1 24 1 4 QP::QTicker::init@407-410@..\src\qf\qf_actq.cpp + 11 2 71 1 13 QP::QTicker::dispatch@412-424@..\src\qf\qf_actq.cpp + 28 3 157 3 40 QP::QTicker::post_@430-469@..\src\qf\qf_actq.cpp + 4 1 23 1 4 QP::QTicker::postLIFO@472-475@..\src\qf\qf_actq.cpp + 12 1 85 2 14 QP::QActive::defer@77-90@..\src\qf\qf_defer.cpp + 34 3 178 1 51 QP::QActive::recall@113-163@..\src\qf\qf_defer.cpp + 8 2 60 1 8 QP::QActive::flushDeferred@180-187@..\src\qf\qf_defer.cpp + 21 4 159 3 29 QP::QF::poolInit@84-112@..\src\qf\qf_dyn.cpp + 28 5 177 3 37 QP::QF::newX_@140-176@..\src\qf\qf_dyn.cpp + 28 4 171 1 46 QP::QF::gc@201-246@..\src\qf\qf_dyn.cpp + 16 2 88 2 23 QP::QF::newRef_@262-284@..\src\qf\qf_dyn.cpp + 9 1 52 1 11 QP::QF::deleteRef_@296-306@..\src\qf\qf_dyn.cpp + 3 1 20 1 3 QP::QF::poolGetMaxBlockSize@312-314@..\src\qf\qf_dyn.cpp + 9 1 40 1 9 QP::QMPool::QMPool@63-71@..\src\qf\qf_mem.cpp + 31 5 228 3 53 QP::QMPool::init@103-155@..\src\qf\qf_mem.cpp + 17 2 102 1 24 QP::QMPool::put@173-196@..\src\qf\qf_mem.cpp + 41 4 214 1 63 QP::QMPool::get@222-284@..\src\qf\qf_mem.cpp + 11 3 74 1 14 QP::QF::getPoolMin@299-312@..\src\qf\qf_mem.cpp + 7 1 39 2 11 QP::QF::psInit@89-99@..\src\qf\qf_ps.cpp + 90 17 623 1 201 QP::QF::publish_@119-319@..\src\qf\qf_ps.cpp + 8 3 59 1 14 QP::QActive::QActive@44-57@..\src\qf\qf_qact.cpp + 9 1 41 1 9 QP::QEQueue::QEQueue@58-66@..\src\qf\qf_qeq.cpp + 13 2 74 2 13 QP::QEQueue::init@84-96@..\src\qf\qf_qeq.cpp + 56 8 285 2 75 QP::QEQueue::post@120-194@..\src\qf\qf_qeq.cpp + 33 5 171 1 44 QP::QEQueue::postLIFO@217-260@..\src\qf\qf_qeq.cpp + 39 4 201 1 48 QP::QEQueue::get@278-325@..\src\qf\qf_qeq.cpp + 5 1 22 1 5 QP::QMActive::QMActive@61-65@..\src\qf\qf_qmact.cpp + 4 1 33 1 4 QP::QMActive::init@68-71@..\src\qf\qf_qmact.cpp + 3 1 19 1 3 QP::QMActive::init@73-75@..\src\qf\qf_qmact.cpp + 3 1 24 1 3 QP::QMActive::dispatch@77-79@..\src\qf\qf_qmact.cpp + 3 1 27 1 3 QP::QMActive::isInState@81-83@..\src\qf\qf_qmact.cpp + 5 1 27 1 5 QP::QMActive::childStateObj@85-89@..\src\qf\qf_qmact.cpp + 69 7 375 2 100 QP::QF::tickX_@79-178@..\src\qf\qf_time.cpp + 13 3 61 1 13 QP::QF::noTimeEvtsActiveX@205-217@..\src\qf\qf_time.cpp + 16 2 100 3 32 QP::QTimeEvt::QTimeEvt@230-261@..\src\qf\qf_time.cpp + 13 1 49 0 27 QP::QTimeEvt::QTimeEvt@267-293@..\src\qf\qf_time.cpp + 33 7 205 2 57 QP::QTimeEvt::armX@321-377@..\src\qf\qf_time.cpp + 31 2 143 1 37 QP::QTimeEvt::disarm@395-431@..\src\qf\qf_time.cpp + 33 7 199 1 58 QP::QTimeEvt::rearm@453-510@..\src\qf\qf_time.cpp + 5 1 28 1 5 QP::QTimeEvt::wasDisarmed@532-536@..\src\qf\qf_time.cpp + 7 1 28 1 9 QP::QTimeEvt::currCtr@551-559@..\src\qf\qf_time.cpp + 11 2 79 1 16 QP::QF::init@78-93@..\src\qk\qk.cpp + 3 1 14 1 4 QP::QF::stop@111-114@..\src\qk\qk.cpp + 6 2 26 1 8 QP::initial_events@119-126@..\src\qk\qk.cpp + 10 3 40 1 14 QP::QF::run@137-150@..\src\qk\qk.cpp + 21 5 139 6 30 QP::QActive::start@169-198@..\src\qk\qk.cpp + 21 2 138 1 32 QP::QK::schedLock@223-254@..\src\qk\qk.cpp + 22 4 149 1 33 QP::QK::schedUnlock@273-305@..\src\qk\qk.cpp + 14 3 94 1 17 QK_sched_@325-341@..\src\qk\qk.cpp + 61 15 421 1 105 QK_activate_@352-456@..\src\qk\qk.cpp + 9 2 67 1 13 QP::QF::init@79-91@..\src\qv\qv.cpp + 3 1 12 1 4 QP::QF::stop@109-112@..\src\qv\qv.cpp + 37 9 198 1 71 QP::QF::run@130-200@..\src\qv\qv.cpp + 15 3 109 6 22 QP::QActive::start@220-241@..\src\qv\qv.cpp + 2 1 10 0 2 QP::QXKIdleThread::QXKIdleThread@68-69@..\src\qxk\qxk.cpp + 14 2 103 1 22 QP::QF::init@85-106@..\src\qxk\qxk.cpp + 3 1 12 1 4 QP::QF::stop@124-127@..\src\qxk\qxk.cpp + 6 2 26 1 8 QP::initial_events@132-139@..\src\qxk\qxk.cpp + 10 3 40 1 15 QP::QF::run@148-162@..\src\qxk\qxk.cpp + 24 6 161 6 34 QP::QActive::start@179-212@..\src\qxk\qxk.cpp + 24 3 150 1 34 QP::QXK::schedLock@235-268@..\src\qxk\qxk.cpp + 22 4 149 1 34 QP::QXK::schedUnlock@287-320@..\src\qxk\qxk.cpp + 51 7 296 1 70 QXK_sched_@340-409@..\src\qxk\qxk.cpp + 79 16 547 1 135 QXK_activate_@420-554@..\src\qxk\qxk.cpp + 13 2 72 1 20 QXK_current@557-576@..\src\qxk\qxk.cpp + 16 4 105 1 24 QP::QXMutex::init@84-107@..\src\qxk\qxk_mutex.cpp + 66 12 456 1 108 QP::QXMutex::lock@129-236@..\src\qxk\qxk_mutex.cpp + 47 10 301 1 71 QP::QXMutex::tryLock@256-326@..\src\qxk\qxk_mutex.cpp + 68 16 460 1 115 QP::QXMutex::unlock@345-459@..\src\qxk\qxk_mutex.cpp + 8 1 55 2 10 QP::QXSemaphore::init@77-86@..\src\qxk\qxk_sema.cpp + 43 7 274 1 68 QP::QXSemaphore::wait@109-176@..\src\qxk\qxk_sema.cpp + 15 2 55 1 20 QP::QXSemaphore::tryWait@191-210@..\src\qxk\qxk_sema.cpp + 27 6 169 1 46 QP::QXSemaphore::signal@230-275@..\src\qxk\qxk_sema.cpp + 8 1 54 2 8 QP::QXThread::QXThread@90-97@..\src\qxk\qxk_xthr.cpp + 4 1 23 1 4 QP::QXThread::init@101-104@..\src\qxk\qxk_xthr.cpp + 4 1 23 1 4 QP::QXThread::dispatch@107-110@..\src\qxk\qxk_xthr.cpp + 25 6 185 6 44 QP::QXThread::start@133-176@..\src\qxk\qxk_xthr.cpp + 97 13 486 3 130 QP::QXThread::post_@212-341@..\src\qxk\qxk_xthr.cpp + 4 1 23 1 4 QP::QXThread::postLIFO@352-355@..\src\qxk\qxk_xthr.cpp + 60 7 436 1 87 QP::QXThread::queueGet@377-463@..\src\qxk\qxk_xthr.cpp + 5 1 47 1 6 QP::QXThread::block_@472-477@..\src\qxk\qxk_xthr.cpp + 8 3 56 1 9 QP::QXThread::unblock_@486-494@..\src\qxk\qxk_xthr.cpp + 18 3 135 2 33 QP::QXThread::teArm_@504-536@..\src\qxk\qxk_xthr.cpp + 11 2 42 1 14 QP::QXThread::teDisarm_@545-558@..\src\qxk\qxk_xthr.cpp + 20 3 169 1 34 QP::QXThread::delay@562-595@..\src\qxk\qxk_xthr.cpp + 14 2 58 1 16 QP::QXThread::delayCancel@599-614@..\src\qxk\qxk_xthr.cpp + 14 2 108 1 23 QXK_threadRet_@631-653@..\src\qxk\qxk_xthr.cpp + 3 1 16 1 3 QP::QF_EVT_POOL_ID_@140-142@..\src\qf_pkg.hpp + 3 1 16 1 3 QP::QF_EVT_REF_CTR_@145-147@..\src\qf_pkg.hpp + 3 1 21 1 3 QP::QF_EVT_REF_CTR_INC_@150-152@..\src\qf_pkg.hpp + 3 1 21 1 3 QP::QF_EVT_REF_CTR_DEC_@155-157@..\src\qf_pkg.hpp +36 file analyzed. +============================================================== +NLOC Avg.NLOC AvgCCN Avg.token function_cnt file +-------------------------------------------------------------- + 5 0.0 0.0 0.0 0 ..\include\qassert.h + 214 3.0 1.0 14.0 1 ..\include\qep.hpp + 38 3.0 1.0 11.7 3 ..\include\qequeue.hpp + 188 2.7 1.0 18.3 10 ..\include\qf.hpp + 32 3.0 1.0 10.0 1 ..\include\qk.hpp + 34 3.0 1.0 11.0 1 ..\include\qmpool.hpp + 1 0.0 0.0 0.0 0 ..\include\qpcpp.h + 4 0.0 0.0 0.0 0 ..\include\qpcpp.hpp + 72 4.3 1.4 34.8 14 ..\include\qpset.hpp + 319 7.0 1.8 45.0 4 ..\include\qs.hpp + 6 0.0 0.0 0.0 0 ..\include\qstamp.cpp + 0 0.0 0.0 0.0 0 ..\include\qs_dummy.hpp + 12 0.0 0.0 0.0 0 ..\include\qv.hpp + 32 0.0 0.0 0.0 0 ..\include\qxk.hpp + 62 3.5 1.0 32.5 2 ..\include\qxthread.hpp + 320 37.4 5.9 215.1 8 ..\src\qf\qep_hsm.cpp + 310 36.9 6.4 216.0 8 ..\src\qf\qep_msm.cpp + 62 12.5 3.5 91.8 4 ..\src\qf\qf_act.cpp + 242 25.4 4.0 147.9 9 ..\src\qf\qf_actq.cpp + 63 18.0 2.0 107.7 3 ..\src\qf\qf_defer.cpp + 116 17.5 2.8 111.2 6 ..\src\qf\qf_dyn.cpp + 118 21.8 3.0 131.6 5 ..\src\qf\qf_mem.cpp + 107 48.5 9.0 331.0 2 ..\src\qf\qf_ps.cpp + 11 8.0 3.0 59.0 1 ..\src\qf\qf_qact.cpp + 159 30.0 4.0 154.4 5 ..\src\qf\qf_qeq.cpp + 27 3.8 1.0 25.3 6 ..\src\qf\qf_qmact.cpp + 231 24.4 3.4 132.0 9 ..\src\qf\qf_time.cpp + 184 18.8 4.1 122.2 9 ..\src\qk\qk.cpp + 76 16.0 3.8 96.5 4 ..\src\qv\qv.cpp + 267 22.5 4.3 142.4 11 ..\src\qxk\qxk.cpp + 206 49.2 10.5 330.5 4 ..\src\qxk\qxk_mutex.cpp + 102 23.2 4.0 138.2 4 ..\src\qxk\qxk_sema.cpp + 305 20.9 3.3 131.8 14 ..\src\qxk\qxk_xthr.cpp + 24 3.0 1.0 18.5 4 ..\src\qf_pkg.hpp + 9 0.0 0.0 0.0 0 ..\src\qs_pkg.hpp + 13 0.0 0.0 0.0 0 ..\src\qxk_pkg.hpp + +========================================================================================================= +!!!! Warnings (cyclomatic_complexity > 20 or nloc > 1000000 or length > 500 or parameter_count > 10) !!!! +================================================ + NLOC CCN token PARAM length location +------------------------------------------------ + 117 21 675 1 169 QP::QMsm::dispatch@147-315@..\src\qf\qep_msm.cpp +========================================================================================== +Total nloc Avg.NLOC AvgCCN Avg.token Fun Cnt Warning cnt Fun Rt nloc Rt +------------------------------------------------------------------------------------------ + 3971 18.8 3.4 114.9 152 1 0.01 0.04 +@endcode +*/ diff --git a/ports/posix-qv/qf_port.cpp b/ports/posix-qv/qf_port.cpp index 22f5362f..72f7ad02 100644 --- a/ports/posix-qv/qf_port.cpp +++ b/ports/posix-qv/qf_port.cpp @@ -3,7 +3,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-23 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -91,14 +91,6 @@ void QF::init(void) { // init the global condition variable with the default initializer pthread_cond_init(&QV_condVar_, NULL); - // clear the internal QF variables, so that the framework can (re)start - // correctly even if the startup code is not called to clear the - // uninitialized data (as is required by the C++ Standard). - extern std::uint_fast8_t QF_maxPool_; - QF_maxPool_ = 0U; - bzero(&QF::timeEvtHead_[0], sizeof(QF::timeEvtHead_)); - bzero(&active_[0], sizeof(active_)); - l_tick.tv_sec = 0; l_tick.tv_nsec = NANOSLEEP_NSEC_PER_SEC/100L; // default clock tick l_tickPrio = sched_get_priority_min(SCHED_FIFO); // default tick prio diff --git a/ports/posix/qf_port.cpp b/ports/posix/qf_port.cpp index bb9dbc5e..212c4a9f 100644 --- a/ports/posix/qf_port.cpp +++ b/ports/posix/qf_port.cpp @@ -3,7 +3,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-23 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -94,14 +94,6 @@ void QF::init(void) { // calling QF::run() pthread_mutex_lock(&l_startupMutex); - // clear the internal QF variables, so that the framework can (re)start - // correctly even if the startup code is not called to clear the - // uninitialized data (as is required by the C++ Standard). - extern std::uint_fast8_t QF_maxPool_; - QF_maxPool_ = 0U; - bzero(&QF::timeEvtHead_[0], sizeof(QF::timeEvtHead_)); - bzero(&active_[0], sizeof(active_)); - l_tick.tv_sec = 0; l_tick.tv_nsec = NANOSLEEP_NSEC_PER_SEC/100L; // default clock tick l_tickPrio = sched_get_priority_min(SCHED_FIFO); // default tick prio diff --git a/ports/win32-qv/qf_port.cpp b/ports/win32-qv/qf_port.cpp index dc3e091b..7fc8660b 100644 --- a/ports/win32-qv/qf_port.cpp +++ b/ports/win32-qv/qf_port.cpp @@ -4,7 +4,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-23 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -70,14 +70,6 @@ static DWORD WINAPI ticker_thread(LPVOID arg); void QF::init(void) { InitializeCriticalSection(&l_win32CritSect); QV_win32Event_ = CreateEvent(NULL, FALSE, FALSE, NULL); - - // clear the internal QF variables, so that the framework can (re)start - // correctly even if the startup code is not called to clear the - // uninitialized data (as is required by the C++ Standard). - extern std::uint_fast8_t QF_maxPool_; - QF_maxPool_ = 0U; - bzero(&QF::timeEvtHead_[0], sizeof(QF::timeEvtHead_)); - bzero(&active_[0], sizeof(active_)); } //**************************************************************************** void QF_enterCriticalSection_(void) { diff --git a/ports/win32/qf_port.cpp b/ports/win32/qf_port.cpp index 3f32f38c..3f6d0008 100644 --- a/ports/win32/qf_port.cpp +++ b/ports/win32/qf_port.cpp @@ -4,7 +4,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-23 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -69,14 +69,6 @@ void QF::init(void) { // any active objects started before calling QF::run() InitializeCriticalSection(&l_startupCritSect); EnterCriticalSection(&l_startupCritSect); - - // clear the internal QF variables, so that the framework can (re)start - // correctly even if the startup code is not called to clear the - // uninitialized data (as is required by the C++ Standard). - extern std::uint_fast8_t QF_maxPool_; - QF_maxPool_ = 0U; - bzero(&QF::timeEvtHead_[0], sizeof(QF::timeEvtHead_)); - bzero(&active_[0], sizeof(active_)); } //**************************************************************************** void QF_enterCriticalSection_(void) { diff --git a/src/qk/qk.cpp b/src/qk/qk.cpp index 79de3991..962f94e3 100644 --- a/src/qk/qk.cpp +++ b/src/qk/qk.cpp @@ -4,7 +4,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-23 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -101,6 +101,11 @@ void QF::init(void) { /// system or for handling fatal errors that require shutting down /// (and possibly re-setting) the system. /// +/// @attention +/// After calling QF::stop() the application must terminate and cannot +/// continue. In particular, QF::stop() is **not** intended to be followed +/// by a call to QF::init() to "resurrect" the application. +/// /// @sa QP::QF::onCleanup() /// void QF::stop(void) { diff --git a/src/qs/qutest.cpp b/src/qs/qutest.cpp index 122cd4f5..b9c4e7ab 100644 --- a/src/qs/qutest.cpp +++ b/src/qs/qutest.cpp @@ -4,7 +4,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-03-03 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -55,6 +55,9 @@ std::uint8_t volatile QF_intNest; // QF functions ============================================================== void QF::init(void) { + /// Clear the internal QF variables, so that the framework can start + /// correctly even if the startup code fails to clear the uninitialized + /// data (as is required by the C++ Standard). QF_maxPool_ = 0U; QF_subscrList_ = nullptr; QF_maxPubSignal_ = 0; diff --git a/src/qv/qv.cpp b/src/qv/qv.cpp index 92250f55..0f691933 100644 --- a/src/qv/qv.cpp +++ b/src/qv/qv.cpp @@ -5,7 +5,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-20 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -74,7 +74,7 @@ extern "C" { /// /// @note QP::QF::init() clears the internal QF variables, so that the /// framework can start correctly even if the startup code fails to clear -/// the uninitialized data (as is required by the C Standard). +/// the uninitialized data (as is required by the C++ Standard). /// void QF::init(void) { QF_maxPool_ = 0U; @@ -99,6 +99,11 @@ void QF::init(void) { /// system or for handling fatal errors that require shutting down /// (and possibly re-setting) the system. /// +/// @attention +/// After calling QF::stop() the application must terminate and cannot +/// continue. In particular, QF::stop() is **not** intended to be followed +/// by a call to QF::init() to "resurrect" the application. +/// /// @sa QP::QF::onCleanup() /// void QF::stop(void) { diff --git a/src/qxk/qxk.cpp b/src/qxk/qxk.cpp index 8b0d7f98..c568284a 100644 --- a/src/qxk/qxk.cpp +++ b/src/qxk/qxk.cpp @@ -5,7 +5,7 @@ /// @cond ///*************************************************************************** /// Last updated for version 6.8.0 -/// Last updated on 2020-01-23 +/// Last updated on 2020-03-23 /// /// Q u a n t u m L e a P s /// ------------------------ @@ -114,6 +114,11 @@ void QF::init(void) { /// system or for handling fatal errors that require shutting down /// (and possibly re-setting) the system. /// +/// @attention +/// After calling QF::stop() the application must terminate and cannot +/// continue. In particular, QF::stop() is **not** intended to be followed +/// by a call to QF::init() to "resurrect" the application. +/// /// @sa QF::onCleanup() /// void QF::stop(void) {