LCOV - code coverage report
Current view: top level - package/statistics/statistics_aggregator - statistics_domain.hpp (source / functions) Hit Total Coverage
Test: wfc_core-coverage.info Lines: 0 1 0.0 %
Date: 2019-09-05 Functions: 0 1 0.0 %

          Line data    Source code
       1             : //
       2             : // Author: Vladimir Migashko <migashko@gmail.com>, (C) 2013-2018
       3             : //
       4             : // Copyright: See COPYING file that comes with this distribution
       5             : //
       6             : 
       7             : #pragma once
       8             : 
       9             : #include <wfc/domain_object.hpp>
      10             : #include <wfc/statistics/istatistics.hpp>
      11             : #include <wfc/statistics/meters.hpp>
      12             : #include <wfc/mutex.hpp>
      13             : #include <wrtstat/wrtstat.hpp>
      14             : #include "statistics_config.hpp"
      15             : #include <string>
      16             : #include <memory>
      17             : #include <atomic>
      18             : 
      19             : namespace wfc{ namespace core{
      20             : 
      21           0 : class statistics_domain
      22             :   : public domain_object<istatistics, statistics_config, defstat>
      23             : {
      24             :   class stat_impl;
      25             : public:
      26             :   virtual ~statistics_domain();
      27             :   virtual void reconfigure_basic() override;
      28             :   virtual void reconfigure() override;
      29             :   virtual void initialize() override;
      30             :   virtual void restart() override;
      31             :   virtual void stop() override;
      32             :   virtual void start() override;
      33             :   virtual void push( wfc::statistics::request::push::ptr req, wfc::statistics::response::push::handler cb) override final;
      34             :   virtual void del( wfc::statistics::request::del::ptr req, wfc::statistics::response::del::handler cb) override final;
      35             : private:
      36             :   typedef std::shared_ptr<stat_impl> stat_ptr;
      37             :   typedef wrtstat::wrtstat stat_push;
      38             :   typedef std::shared_ptr<stat_push> stat_push_ptr;
      39             :   typedef std::vector<stat_push_ptr> stat_list;
      40             :   typedef std::vector<workflow_ptr> workflow_list;
      41             : 
      42             :   stat_ptr get_stat_(const std::string& name);
      43             :   //workflow_ptr get_workflow_(const std::string& name);
      44             :   
      45             :   template<typename StatPtr>
      46             :   bool handler_(StatPtr st, size_t offset, size_t step);
      47             : 
      48             :   stat_ptr _stat;
      49             :   stat_list _stat_list;
      50             :   workflow_list _workflow_list;
      51             :   
      52             :   typedef std::weak_ptr<istatistics> statistics_wptr;
      53             :   
      54             :   std::vector< statistics_wptr > _targets;
      55             :   timer_id_t _timer_id;
      56             :   std::vector<timer_id_t> _timers; // удалить
      57             :   std::string _log;
      58             :  
      59             :   std::atomic<bool> _started;
      60             :   std::chrono::system_clock::time_point _start_point;
      61             :   
      62             :   time_meter _push_meter;
      63             :   size_meter _count_meter;
      64             :   
      65             :   typedef rwlock<std::mutex> mutex_type;
      66             :   mutex_type _mutex;
      67             :   
      68             :   std::atomic<bool> _suspend_push;
      69             : };
      70             : 
      71             : }}

Generated by: LCOV version 1.10