implement operator connection printer for debugging purposes
Stefan Schuermans

Stefan Schuermans commited on 2011-12-22 19:21:00
Showing 4 changed files, with 149 additions and 1 deletions.

... ...
@@ -1 +1 @@
1
-loveletters/ondemand
1
+opprinters/debug
... ...
@@ -0,0 +1,76 @@
1
+/* Blinker
2
+   Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3
+   Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4
+   a blinkenarea.org project */
5
+
6
+#include <iostream>
7
+#include <string>
8
+
9
+#include "Directory.h"
10
+#include "File.h"
11
+#include "Mgrs.h"
12
+#include "Module.h"
13
+#include "OpConn.h"
14
+#include "OpConnIf.h"
15
+#include "OpMgr.h"
16
+#include "OpPrinter.h"
17
+#include "OpReqIf.h"
18
+
19
+namespace Blinker {
20
+
21
+/**
22
+ * @brief constructor
23
+ * @param[in] mgrs managers
24
+ * @param[in] dirBase base directory
25
+ */
26
+OpPrinter::OpPrinter(Mgrs &mgrs, const Directory &dirBase):
27
+  Module(mgrs, dirBase)
28
+{
29
+  m_mgrs.m_opMgr.open("TODO", this);
30
+}
31
+
32
+/// virtual destructor
33
+OpPrinter::~OpPrinter()
34
+{
35
+  m_mgrs.m_opMgr.close("TODO");
36
+}
37
+
38
+/// check for update of configuration
39
+void OpPrinter::updateConfig()
40
+{
41
+  // nothing to do here for this module
42
+}
43
+
44
+/**
45
+ * @brief check if accepting new operator connction is possible
46
+ * @param[in] name operator interface name
47
+ * @return if accepting new connection is possible
48
+ */
49
+bool OpPrinter::acceptNewOpConn(const std::string &name)
50
+{
51
+  return true; // accept all connections
52
+  (void)name; // unused
53
+}
54
+
55
+/**
56
+ * @brief new operator connection
57
+ * @param[in] name operator interface name
58
+ * @param[in] pConn operator connection object
59
+ */
60
+void OpPrinter::newOpConn(const std::string &name, OpConn *pConn)
61
+{
62
+  std::cout << "new connection " << pConn << std::endl;
63
+  (void)name; // unused
64
+}
65
+
66
+/**
67
+ * @brief operator connection is closed
68
+ * @param[in] pConn operator connection object
69
+ */
70
+void OpPrinter::opConnClose(OpConn *pConn)
71
+{
72
+  std::cout << "connection " << pConn << " closed" << std::endl;
73
+}
74
+
75
+} // namespace Blinker
76
+
... ...
@@ -0,0 +1,70 @@
1
+/* Blinker
2
+   Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3
+   Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4
+   a blinkenarea.org project */
5
+
6
+#ifndef BLINKER_OPPRINTER_H
7
+#define BLINKER_OPPRINTER_H
8
+
9
+#include <string>
10
+
11
+#include "Directory.h"
12
+#include "File.h"
13
+#include "Mgrs.h"
14
+#include "Module.h"
15
+#include "OpConn.h"
16
+#include "OpConnIf.h"
17
+#include "OpReqIf.h"
18
+
19
+namespace Blinker {
20
+
21
+/// a operator connection printer
22
+class OpPrinter: public Module, public OpReqIf
23
+{
24
+public:
25
+  /**
26
+   * @brief constructor
27
+   * @param[in] mgrs managers
28
+   * @param[in] dirBase base directory
29
+   */
30
+  OpPrinter(Mgrs &mgrs, const Directory &dirBase);
31
+
32
+  /// virtual destructor
33
+  virtual ~OpPrinter();
34
+
35
+private:
36
+  /// copy constructor disabled
37
+  OpPrinter(const OpPrinter &that);
38
+
39
+  /// assignment operator disabled
40
+  const OpPrinter & operator=(const OpPrinter &that);
41
+
42
+public:
43
+  /// check for update of configuration
44
+  virtual void updateConfig();
45
+
46
+  /**
47
+   * @brief check if accepting new operator connction is possible
48
+   * @param[in] name operator interface name
49
+   * @return if accepting new connection is possible
50
+   */
51
+  virtual bool acceptNewOpConn(const std::string &name);
52
+
53
+  /**
54
+   * @brief new operator connection
55
+   * @param[in] name operator interface name
56
+   * @param[in] pConn operator connection object
57
+   */
58
+  virtual void newOpConn(const std::string &name, OpConn *pConn);
59
+
60
+  /**
61
+   * @brief operator connection is closed
62
+   * @param[in] pConn operator connection object
63
+   */
64
+  virtual void opConnClose(OpConn *pConn);
65
+}; // class OpPrinter
66
+
67
+} // namespace Blinker
68
+
69
+#endif // #ifndef BLINKER_OPPRINTER_H
70
+
... ...
@@ -12,6 +12,7 @@
12 12
 #include "Mgrs.h"
13 13
 #include "ModuleMgr.h"
14 14
 #include "ModuleMgr_impl.h"
15
+#include "OpPrinter.h"
15 16
 #include "Output.h"
16 17
 #include "Player.h"
17 18
 #include "Printer.h"
... ...
@@ -32,6 +33,7 @@ void run(const std::string &dirConfig)
32 33
 
33 34
   ModuleMgr<Canvas>       canvases(mgrs,      cfg.getSubdir("canvases"));
34 35
   ModuleMgr<FlexiPix>     flexipixes(mgrs,    cfg.getSubdir("flexipixes"));
36
+  ModuleMgr<OpPrinter>    opprinters(mgrs,    cfg.getSubdir("opprinters"));
35 37
   ModuleMgr<Output>       outputs(mgrs,       cfg.getSubdir("outputs"));
36 38
   ModuleMgr<Player>       players(mgrs,       cfg.getSubdir("players"));
37 39
   ModuleMgr<Printer>      printers(mgrs,      cfg.getSubdir("printers"));
38 40