CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MainThreadMLscribe.h
Go to the documentation of this file.
1 #ifndef FWCore_MessageService_MainThreadMLscribe_h
2 #define FWCore_MessageService_MainThreadMLscribe_h
3 
6 
7 // I believe the below are not needed:
8 
9 #include <memory>
10 
11 #include <iosfwd>
12 #include <vector>
13 #include <map>
14 
15 #include <iostream>
16 
17 namespace edm {
18 namespace service {
19 
20 // ----------------------------------------------------------------------
21 //
22 // MainThreadMLscribe.h
23 //
24 // This class is a concrete of AbstractMessageLoggerScribe
25 // Its purpose exists ONLY if there is a second thread running the workhorse
26 // scrribe. In that case, the workhorse will be consuming from a
27 // SingleConsumerQ, and this class is the one that places the item on said
28 // queue. It does work that used to be the realm of MessageLoggerQ.
29 //
30 // Changes:
31 //
32 // 0 - 8/7/09 Initial version mf and crj
33 //
34 // -----------------------------------------------------------------------
35 
36 class ThreadQueue;
37 
39 {
40 public:
41  // --- birth/death:
42  MainThreadMLscribe(std::shared_ptr<ThreadQueue> tqp);
43  virtual ~MainThreadMLscribe();
44 
45  // --- receive and act on messages:
46  virtual
47  void runCommand(MessageLoggerQ::OpCode opcode, void * operand);
48 
49 
50 private:
51 
52  std::shared_ptr<ThreadQueue> m_queue;
53 }; // MainThreadMLscribe
54 
55 
56 } // end of namespace service
57 } // namespace edm
58 
59 
60 #endif // FWCore_MessageService_MainThreadMLscribe_h
std::shared_ptr< ThreadQueue > m_queue
MainThreadMLscribe(std::shared_ptr< ThreadQueue > tqp)
virtual void runCommand(MessageLoggerQ::OpCode opcode, void *operand)