dio  130
API Documentation
dim.hxx
Go to the documentation of this file.
1 
6 #ifndef _DINO_MUX_HXX__
7 #define _DINO_MUX_HXX__
8 
9 #include <map>
10 #include <utility>
11 #include "umi/umi_task.hxx"
12 #include "rio/sio.hxx"
13 #include "dino/dino.hxx"
14 #include "dio/ports.hxx"
15 
16 
20 namespace INdepDev100 {
21  namespace Umi=INdepUmi100;
22  namespace Sio=INdepSio100;
23  namespace Dino=INdepDino100;
24 
25  const Dino::Dino_dino_Proto theDino_dino_Proto ;
26 
27 
31  class DioMux:public Failables , public Umi::PortMux {
32 
33  void sendRequest();
34  void sendResponse(int h);
35 
36  private:
37  enum { ceDinoUser, ccPortTypes };
38  class DinoSyncServerFunc;
39 
40  typedef std::map<std::string, std::pair<int,int> > MpSgBi;
41  const MpSgBi mp;
42 
43  static PortClass mpPortClass[ccPortTypes+1];
44 
45  /* server ports */
46  Port _mpPo[ccPortTypes];
47 
51  Umi::Task *createTask(Umi::Channel *, const PortClass *, Umi::Pmd pmd, Umi::PortMux *pma, int h);
52  void deleteTask(const PortClass*, Umi::Task *pta);
53  public:
54 
55  DioMux( Umi::Channel *pucDrv );
56  ~DioMux();
57  };
58 }
59 
60 
61 #endif
namespace for the ines Digital I/O (Dino) interface
Definition: dino.hxx:50
namespace defining support for physical devices
Definition: dim.hxx:20
DIO-3460 Physical Device Manager.
Definition: dim.hxx:31
Definition: dino.hxx:15
Failable with reason stack.
Definition: failable.hxx:95