Cat
ProcDataBase.cpp
Go to the documentation of this file.
1 // $Id: ProcDataBase.cpp,v 1.27 2006/10/24 13:30:40 fmachefe Exp $
2 // Include files
3 
4 // CATCore include files
5 #include "Application.h"
6 #include "Tools.h"
7 #include "StatusCode.h"
8 #include "DLLMgr.h"
9 
10 // CATProc include files
11 #include "Processus.h"
12 
13 // local
14 #include "ProcDataBase.h"
15 
16 //-----------------------------------------------------------------------------
17 // Implementation file for class : ProcDataBase
18 //
19 // 2005-01-03 : Frederic Machefert
20 //-----------------------------------------------------------------------------
21 
22 //=============================================================================
23 // Standard constructor, initializes variables
24 //=============================================================================
26  application()->info("Building Processus DataBase.","ProcDataBase");
27 }
28 
29 //=============================================================================
30 // Destructor
31 //=============================================================================
33 }
34 
35 //=========================================================================
36 //
37 //=========================================================================
39  std::list<Processus*>::const_iterator iter;
40  for (iter=m_procList.begin();iter!=m_procList.end();++iter){
41  m_types.push_back( (*iter)->type() );
42  }
43  m_types.unique();
44 }
45 
46 //=========================================================================
47 //
48 //=========================================================================
49 std::list<Processus*> ProcDataBase::procList ( Element* element ) {
50  std::list<Processus*> list;
51  std::list<Processus*>::const_iterator iter;
52  for (iter=m_procList.begin();iter!=m_procList.end();++iter){
53  if ( (*iter)->type().compare( element->type() )==0 ){
54  list.push_back( *iter );
55  }
56  }
57  return list;
58 }
59 
60 //=========================================================================
61 //
62 //=========================================================================
63 std::vector<Processus*> ProcDataBase::list ( Element* element ) {
64  std::vector<Processus*> list;
65  std::list<Processus*>::const_iterator iter;
66  for (iter=m_procList.begin();iter!=m_procList.end();++iter){
67  if ( (*iter)->type().compare( element->type() )==0 ){
68  list.push_back( *iter );
69  }
70  }
71  return list;
72 }
73 //=========================================================================
74 //
75 //=========================================================================
76 std::vector<Processus*> ProcDataBase::list ( ) {
77  std::vector<Processus*> list;
78  std::list<Processus*>::const_iterator iter;
79  for (iter=m_procList.begin();iter!=m_procList.end();++iter){
80  list.push_back( *iter );
81  }
82  return list;
83 }
84 
85 //=========================================================================
86 //
87 //=========================================================================
88 Processus* ProcDataBase::processus ( std::string procName ) {
89  std::list< Processus* >::const_iterator iter;
90  for (iter=m_procList.begin();iter!=m_procList.end();++iter){
91  if ( (*iter)->name().compare(procName) == 0 ) {
92  return (*iter);
93  }
94  }
95  return NULL;
96 }
97 
98 //=========================================================================
99 //
100 //=========================================================================
102  m_procList.push_back ( proc );
103  update();
104  return StatusCode::SUCCESS;
105 }
106 
107 //=========================================================================
108 //
109 //=========================================================================
111  m_procList.remove( proc );
112  return StatusCode::SUCCESS;
113 }
114 
115 #ifdef _NETWORK_
116 //=========================================================================
117 //
118 //=========================================================================
119 bool ProcDataBase::startServices () {
120  std::list<Processus*>::const_iterator iter;
121  for (iter=m_procList.begin();iter!=m_procList.end();++iter){
122  (*iter)->startServices ();
123  }
124  return true;
125 }
126 #endif
127 
128 //=============================================================================
129 
void info(std::string mymsg)
Definition: Object.h:38
StatusCode remove(Processus *)
StatusCode add(Processus *)
ProcDataBase()
Standard constructor.
Application * application()
Definition: Tools.cpp:42
std::list< Processus *> procList(Element *)
std::vector< Processus * > list()
std::list< Processus *> m_procList
Definition: ProcDataBase.h:55
virtual ~ProcDataBase()
Destructor.
std::list< std::string > m_types
Definition: ProcDataBase.h:56
Processus * processus(std::string)
std::string type()
Definition: Object.h:29
Definition: proc.py:1