f857cc5b5586b1563e9681eac068534df6341b53
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h   1) /* Blinker
Stefan Schuermans update copyright header

Stefan Schuermans authored 5 years ago

src/common/OpSplitter.h   2)    Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h   3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
src/noarch/OpSplitter.h   4)    a blinkenarea.org project */
src/noarch/OpSplitter.h   5) 
src/noarch/OpSplitter.h   6) #ifndef BLINKER_OPSPLITTER_H
src/noarch/OpSplitter.h   7) #define BLINKER_OPSPLITTER_H
src/noarch/OpSplitter.h   8) 
src/noarch/OpSplitter.h   9) #include <map>
src/noarch/OpSplitter.h  10) #include <string>
src/noarch/OpSplitter.h  11) 
Stefan Schuermans implemented single mode for...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  12) #include "BoolFile.h"
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  13) #include "Directory.h"
src/noarch/OpSplitter.h  14) #include "File.h"
src/noarch/OpSplitter.h  15) #include "ListTracker.h"
src/noarch/OpSplitter.h  16) #include "Mgrs.h"
src/noarch/OpSplitter.h  17) #include "Module.h"
src/noarch/OpSplitter.h  18) #include "NameFile.h"
src/noarch/OpSplitter.h  19) #include "OpConn.h"
src/noarch/OpSplitter.h  20) #include "OpConnIf.h"
src/noarch/OpSplitter.h  21) #include "OpReqIf.h"
src/noarch/OpSplitter.h  22) #include "SettingFile.h"
src/noarch/OpSplitter.h  23) #include "Time.h"
src/noarch/OpSplitter.h  24) #include "TimeCallee.h"
Stefan Schuermans limit number of connections...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  25) #include "UIntFile.h"
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  26) 
src/noarch/OpSplitter.h  27) namespace Blinker {
src/noarch/OpSplitter.h  28) 
src/noarch/OpSplitter.h  29) /// operator connection splitter
src/noarch/OpSplitter.h  30) class OpSplitter: public Module, public OpReqIf, public TimeCallee
src/noarch/OpSplitter.h  31) {
src/noarch/OpSplitter.h  32) protected:
src/noarch/OpSplitter.h  33)   /// extension to be called
src/noarch/OpSplitter.h  34)   class Extension;
src/noarch/OpSplitter.h  35) 
src/noarch/OpSplitter.h  36)   /// extension list tracker
src/noarch/OpSplitter.h  37)   typedef ListTracker<OpSplitter, Extension, Directory> ExtListTracker;
src/noarch/OpSplitter.h  38) 
src/noarch/OpSplitter.h  39)   /// map of extensions to call (extension name -> module name)
src/noarch/OpSplitter.h  40)   typedef std::map<std::string, std::string> ExtMap;
src/noarch/OpSplitter.h  41) 
src/noarch/OpSplitter.h  42)   /// type for locally handles connection
src/noarch/OpSplitter.h  43)   struct Local {
src/noarch/OpSplitter.h  44)     std::string m_number;   ///< extension number dialed so far
src/noarch/OpSplitter.h  45)     bool        m_sendPlay; ///< if to send a play request
Stefan Schuermans implemented single mode for...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  46)     bool        m_close;    ///< if to close connection as soon as possible
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  47)   };
src/noarch/OpSplitter.h  48) 
src/noarch/OpSplitter.h  49)   /**
src/noarch/OpSplitter.h  50)    * @brief map of local connections,
src/noarch/OpSplitter.h  51)    *        contains all incoming connections as key for which no
src/noarch/OpSplitter.h  52)    *        outgoing connection is available
src/noarch/OpSplitter.h  53)    */
src/noarch/OpSplitter.h  54)   typedef std::map<OpConn *, Local> MapLocal;
src/noarch/OpSplitter.h  55) 
src/noarch/OpSplitter.h  56)   /**
src/noarch/OpSplitter.h  57)    * @brief map from incoming to outgoing connections,
src/noarch/OpSplitter.h  58)    *        contains all incoming connectes as key for which a corresponding
src/noarch/OpSplitter.h  59)    *        outgoing connection is available
src/noarch/OpSplitter.h  60)    */
src/noarch/OpSplitter.h  61)   typedef std::map<OpConn *, OpConn *> MapInOut;
src/noarch/OpSplitter.h  62) 
src/noarch/OpSplitter.h  63)   /// map from outgoing to incoming connections
src/noarch/OpSplitter.h  64)   typedef std::map<OpConn *, OpConn *> MapOutIn;
src/noarch/OpSplitter.h  65) 
src/noarch/OpSplitter.h  66) public:
src/noarch/OpSplitter.h  67)   /**
src/noarch/OpSplitter.h  68)    * @brief constructor
src/noarch/OpSplitter.h  69)    * @param[in] name module name
src/noarch/OpSplitter.h  70)    * @param[in] mgrs managers
src/noarch/OpSplitter.h  71)    * @param[in] dirBase base directory
src/noarch/OpSplitter.h  72)    */
src/noarch/OpSplitter.h  73)   OpSplitter(const std::string &name, Mgrs &mgrs, const Directory &dirBase);
src/noarch/OpSplitter.h  74) 
src/noarch/OpSplitter.h  75)   /// virtual destructor
src/noarch/OpSplitter.h  76)   virtual ~OpSplitter();
src/noarch/OpSplitter.h  77) 
src/noarch/OpSplitter.h  78) private:
src/noarch/OpSplitter.h  79)   /// copy constructor disabled
src/noarch/OpSplitter.h  80)   OpSplitter(const OpSplitter &that);
src/noarch/OpSplitter.h  81) 
src/noarch/OpSplitter.h  82)   /// assignment operator disabled
src/noarch/OpSplitter.h  83)   const OpSplitter & operator=(const OpSplitter &that);
src/noarch/OpSplitter.h  84) 
src/noarch/OpSplitter.h  85) public:
src/noarch/OpSplitter.h  86)   /// check for update of configuration
src/noarch/OpSplitter.h  87)   virtual void updateConfig();
src/noarch/OpSplitter.h  88) 
src/noarch/OpSplitter.h  89)   /// callback when requested time reached
src/noarch/OpSplitter.h  90)   virtual void timeCall();
src/noarch/OpSplitter.h  91) 
src/noarch/OpSplitter.h  92)   /**
Stefan Schuermans fix comment typo

Stefan Schuermans authored 5 years ago

src/common/OpSplitter.h  93)    * @brief check if accepting new operator connection is possible
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h  94)    * @param[in] name operator interface name
src/noarch/OpSplitter.h  95)    * @return if accepting new connection is possible
src/noarch/OpSplitter.h  96)    */
src/noarch/OpSplitter.h  97)   virtual bool acceptNewOpConn(const std::string &name);
src/noarch/OpSplitter.h  98) 
src/noarch/OpSplitter.h  99)   /**
src/noarch/OpSplitter.h 100)    * @brief new operator connection
src/noarch/OpSplitter.h 101)    * @param[in] name operator interface name
src/noarch/OpSplitter.h 102)    * @param[in] pConn operator connection object
src/noarch/OpSplitter.h 103)    *
src/noarch/OpSplitter.h 104)    * The new connection may not yet be used for sending inside this callback.
src/noarch/OpSplitter.h 105)    */
src/noarch/OpSplitter.h 106)   virtual void newOpConn(const std::string &name, OpConn *pConn);
src/noarch/OpSplitter.h 107) 
src/noarch/OpSplitter.h 108)   /**
src/noarch/OpSplitter.h 109)    * @brief key command received on operator connection
src/noarch/OpSplitter.h 110)    * @param[in] pConn operator connection object
src/noarch/OpSplitter.h 111)    * @param[in] key key that was pressed
src/noarch/OpSplitter.h 112)    */
src/noarch/OpSplitter.h 113)   virtual void opConnRecvKey(OpConn *pConn, char key);
src/noarch/OpSplitter.h 114) 
src/noarch/OpSplitter.h 115)   /**
src/noarch/OpSplitter.h 116)    * @brief play command received on operator connection
src/noarch/OpSplitter.h 117)    * @param[in] pConn operator connection object
src/noarch/OpSplitter.h 118)    * @param[in] sound name of sound to play
src/noarch/OpSplitter.h 119)    */
src/noarch/OpSplitter.h 120)   virtual void opConnRecvPlay(OpConn *pConn, const std::string &sound);
src/noarch/OpSplitter.h 121) 
src/noarch/OpSplitter.h 122)   /**
src/noarch/OpSplitter.h 123)    * @brief operator connection is closed
src/noarch/OpSplitter.h 124)    * @param[in] pConn operator connection object
src/noarch/OpSplitter.h 125)    *
src/noarch/OpSplitter.h 126)    * The connection may not be used for sending any more in this callback.
src/noarch/OpSplitter.h 127)    */
src/noarch/OpSplitter.h 128)   virtual void opConnClose(OpConn *pConn);
src/noarch/OpSplitter.h 129) 
src/noarch/OpSplitter.h 130) protected:
src/noarch/OpSplitter.h 131)   /**
src/noarch/OpSplitter.h 132)    * @brief create new local connection
src/noarch/OpSplitter.h 133)    * @param[in] pConn connection to make local
Stefan Schuermans implemented single mode for...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h 134)    * @param[in] close if to close connection as soon as possible
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h 135)    */
Stefan Schuermans implemented single mode for...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h 136)   void newLocal(OpConn *pConn, bool close = false);
Stefan Schuermans implemnted operator connect...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h 137) 
src/noarch/OpSplitter.h 138)   /**
src/noarch/OpSplitter.h 139)    * @brief a key has been pressed for a local connection
src/noarch/OpSplitter.h 140)    * @param[in] itLocal local connection
src/noarch/OpSplitter.h 141)    * @param[in] key the key pressed
src/noarch/OpSplitter.h 142)    */
src/noarch/OpSplitter.h 143)   void localKey(MapLocal::iterator itLocal, char key);
src/noarch/OpSplitter.h 144) 
src/noarch/OpSplitter.h 145)   /**
src/noarch/OpSplitter.h 146)    * @brief call extension dialed over local connection
src/noarch/OpSplitter.h 147)    * @param[in] itLocal local connection
src/noarch/OpSplitter.h 148)    */
src/noarch/OpSplitter.h 149)   void callExtension(MapLocal::iterator itLocal);
src/noarch/OpSplitter.h 150) 
src/noarch/OpSplitter.h 151) protected:
src/noarch/OpSplitter.h 152)   NameFile       m_fileSound;      ///< file containing sound name
Stefan Schuermans limit number of connections...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h 153)   UIntFile       m_fileMaxConn;    ///< file containing max. number of conn.
Stefan Schuermans implemented single mode for...

Stefan Schuermans authored 12 years ago

src/noarch/OpSplitter.h 154)   BoolFile       m_fileSingle;     ///< file containing single mode config
src/noarch/OpSplitter.h 155)   std::string    m_singleOp;       ///< operator intf. to call in single mode