⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 benchmark_base.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
/* -*- C++ -*- */// Benchmark_Base.h,v 1.4 2003/11/09 04:12:09 dhinton Exp/* Defines the base class used to dynamically link in the benchmark tests */#ifndef ACE_BENCHMARK_BASE_H# define ACE_BENCHMARK_BASE_H# include "ace/Service_Config.h"#if !defined (ACE_LACKS_PRAGMA_ONCE)# pragma once#endif /* ACE_LACKS_PRAGMA_ONCE */# include "ace/Service_Repository.h"# include "ace/Service_Types.h"# include "ace/Atomic_Op.h"# include "export_mac.h"# include "ace/TSS_T.h"# if defined (ACE_HAS_THREADS)#   if defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_DCETHREADS) || defined (VXWORKS)typedef ACE_Atomic_Op<ACE_Thread_Mutex, int> MT_INT;class Thr_ID  // TITLE  //   A simple class that provides a thread-specific value in order  //   to compensate for POSIX Pthreads.  //  // DESCRIPTION  //   Pthreads are too lame to have a sensible scalar values for the  //   thread id (unlike Solaris threads).   Therefore, we have to  //   emulate this ourselves with this class (gag).{public:  Thr_ID (void);  int thr_id (void);  void thr_id (int);private:  int thr_id_;  static MT_INT thread_id_;};#   endif /* ACE_HAS_PTHREADS || ACE_HAS_DCETHREADS || VXWORKS */class SYNCHLIB_Export Benchmark_Base : public ACE_Service_Object{  // = TITLE  //     Base class for all benchmarking objects.  //  // = DESCRIPTION  //     This class is the base class for all benchmarking  //     classes.  Its major functionalities are to privide RTTI  //     information and to define other common methods all  //     benchmarking classes should support.public:  enum {    BENCHMARK_BASE,    METHOD,    BASELINE,    PERFORMANCE  };  int benchmark_type (void);  // RTTI information of this module.  int thr_id (void);  // Returns our thread id;protected:  Benchmark_Base (int type = BENCHMARK_BASE);  // Default ctor.  int benchmark_type_;  // Store the RTTI info of this module.#   if defined (ACE_HAS_PTHREADS) || defined (ACE_HAS_DCETHREADS) || defined (VXWORKS)  ACE_TSS <Thr_ID> id_;  // Keeps track of our "virtual" thread id...#   endif /* ACE_HAS_PTHREADS || ACE_HAS_DCETHREADS || VXWORKS */};class SYNCHLIB_Export Benchmark_Method_Base : public Benchmark_Base{  // = TITLE  //     This class identifies itself as Benmarking Method class.  //     It defines a method as of how the test is setup and measured.public:  int exec (ACE_Service_Repository_Iterator *sri);  // Run the test and advanced the service repository iterator  virtual int pre_run_test (Benchmark_Base *bp) = 0;  // Before running the real test.  Subclasses implement this method  // to dictate how the test is performed.  virtual int run_test (void) = 0;  // Run the real test.  Subclasses implement this method to  // dictate how the test is performed.  virtual int post_run_test (void) = 0;  // After running the real test.  Subclasses implement this method to  // dictate how the test is performed.  virtual int valid_test_object (Benchmark_Base *) = 0;  // Check if we got a valid test to perform.protected:  Benchmark_Method_Base (void);};# endif /* ACE_HAS_THREADS */#endif /* ACE_BENCHMARK_BASE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -