Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / orbsvcs / tests / Event / Performance / Inversion.h
blob03c07d71439ad4da3815f9f9b10ec997fbe6dbfa
1 /* -*- C++ -*- */
2 //=============================================================================
3 /**
4 * @file Inversion.h
6 * @author Carlos O'Ryan (coryan@cs.wustl.edu)
7 */
8 //=============================================================================
11 #ifndef EC_INVERSION_H
12 #define EC_INVERSION_H
14 #include "Driver.h"
16 #if !defined (ACE_LACKS_PRAGMA_ONCE)
17 # pragma once
18 #endif /* ACE_LACKS_PRAGMA_ONCE */
20 /**
21 * @class EC_Inversion
23 * @brief Measure priority inversions in the EC.
25 class EC_Inversion : public EC_Driver
27 public:
28 /// Constructor
29 EC_Inversion (void);
31 // = The EC_Driver methods
32 /**
33 * Parse the arguments, but override the number of consumers.
34 * The options controlling the event types are ignored, and only two
35 * consumers are created.
37 int parse_args (int &argc, ACE_TCHAR *argv[]);
39 /**
40 * In this test there are two consumers, the high priority consumer
41 * receives only events from a single high priority supplier. The
42 * other consumer receives events from a set of low priority
43 * suppliers.
45 virtual void connect_consumers (void);
46 virtual void connect_suppliers (void);
48 /// Activate the suppliers at different priorities
49 virtual void activate_tasks (void);
51 private:
52 /// If set then both low priority and high priority suppliers
53 /// generate the same events.
54 int same_events_;
57 #endif /* EC_INVERSION_H */