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

📄 rt_corba_workers.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
/* -*- C++ -*- *///=============================================================================/** *  @file    RT_CORBA_Workers.h * *  RT_CORBA_Workers.h,v 1.6 2003/08/04 03:53:54 dhinton Exp * *   The Workes test modified to suit RTCORBA tests. The  original *   Workers has too many things that doesnt get what we are looking *   for (read it as just confusing enough). Hence a new test. * *  @author Balachandran Natarajan <bala@cs.wustl.edu> *///=============================================================================#ifndef PERF_TEST_RT_CORBA_WORKERS_H#define PERF_TEST_RT_CORBA_WORKERS_H#include /**/ "ace/pre.h"#include "ace/Task_T.h"#include "ace/Manual_Event.h"#if !defined (ACE_LACKS_PRAGMA_ONCE)# pragma once#endif /* ACE_LACKS_PRAGMA_ONCE */#if defined (ACE_HAS_THREADS)enum DEBUGGING_RANGE{  DEBUG_NONE = 0,  DEBUG};typedef ACE_Message_Queue<ACE_MT_SYNCH> Message_Queue;/**************************************************************//** * @class Synchronisers * * @brief This class provides all the synchrnoisers used in this *  test. * * *//// Forward declaration..class IO_Task;class Worker_Task;class Synchronisers{public:  friend class IO_Task;  friend class Worker_Task;  enum  {    /// Used in the message block to stop processing of message    /// blocks.    MB_STOP_FLAG = 0x2000  };  /// Ctor  Synchronisers (void);  int  start_synchronization (void);  int  end_synchronization (void);private:  /// The mutex that is used for synchronisation.  ACE_SYNCH_MUTEX mutex_;  /// A manual event  ACE_Manual_Event event_;};/**************************************************************//** * @class Input_Task * * @brief Class that does the Input work ie. puts the events into the *  message queue */class Input_Task : public ACE_Task<ACE_MT_SYNCH>{public:  /// Ctor  Input_Task (Message_Queue *mq,              Synchronisers &synch);  /// The thread runs inside this method..  int svc (void);private:  /// Our referance to Synchronisers  Synchronisers &synch_;};/**************************************************************//** * @class Output_Task * * @brief Class that does the Output work ie. getsx the events into the *  message queue */class Output_Task : public ACE_Task<ACE_MT_SYNCH>{public:  /// Ctor  Output_Task (Message_Queue *mq,              Synchronisers &synch);  /// The thread runs inside this method..  int svc (void);  /// Need to overload this method to do anything useful..  virtual int put (ACE_Message_Block *, ACE_Time_Value * = 0);private:  /// Our referance to Synchronisers  Synchronisers &synch_;};/**************************************************************//** * @class Synchronisers * * @brief This class provides and interface for all the upcall threads *  to run and do the actual work */class Worker_Task : public ACE_Task<ACE_MT_SYNCH>{public:  /// Ctor  Worker_Task (Message_Queue *mq,               Synchronisers &synch);  /// Methods in which the threads run on  int svc (void);  /// Processed messages  int processed (void);private:  /// Our referance to Synchronisers  Synchronisers &synch_;  /// Number of messages processed by us  size_t messages_processed_;};#endif /*ACE_HAS_THREADS*/#include /**/ "ace/post.h"#endif /*PERF_TEST_RT_CORBA_WORKERS_H*/

⌨️ 快捷键说明

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