Version: 9.15.0
Container.cxx
Go to the documentation of this file.
1 // Copyright (C) 2006-2025 CEA, EDF
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #include "Container.hxx"
21 #include "ComponentInstance.hxx"
22 
23 //#define _DEVDEBUG_
24 #include "YacsTrace.hxx"
25 
26 #include <sstream>
27 
28 using namespace std;
29 using namespace YACS::ENGINE;
30 
31 const char Container::KIND_ENTRY[]="container_kind";
32 
33 const char Container::AOC_ENTRY[]="attached_on_cloning";
34 
35 const char Container::USE_PYCACHE_PROPERTY[]="use_py_cache";
36 
37 Container::Container():_isAttachedOnCloning(false),_proc(0)
38 {
39 }
40 
42 {
43 }
44 
45 std::string Container::getDiscreminantStrOfThis(const Task *askingNode) const
46 {
47  const void *ptr(this);
48  std::ostringstream oss; oss << ptr;
49  return oss.str();
50 }
51 
52 void Container::start(const Task *askingNode,
53  const std::string& resource_name,
54  const std::string& container_name)
55 {
56  return start(askingNode);
57 }
58 
60 {
61  return false;
62 }
63 
69 {
71 }
72 
77 {
79 }
80 
85 {
87 }
88 
90 {
91  return _isAttachedOnCloning;
92 }
93 
99 {
100  return true;
101 }
102 
103 void Container::setProperties(const std::map<std::string,std::string>& properties)
104 {
105  for (std::map<std::string,std::string>::const_iterator it=properties.begin();it!=properties.end();++it)
106  setProperty((*it).first,(*it).second);
107 }
108 
110 {
111  bool found = false;
112  std::string str_value;
113  str_value = getProperty(USE_PYCACHE_PROPERTY);
114  const char* yes_values[] = {"YES", "Yes", "yes", "TRUE", "True", "true", "1",
115  "ON", "on", "On"};
116  for(const char* v : yes_values)
117  if(str_value == v)
118  {
119  found = true;
120  break;
121  }
122  return found;
123 }
124 
126 {
127  if(v)
129  else
131 }
132 
virtual void start(const Task *askingNode)=0
virtual bool isSupportingRTODefNbOfComp() const
Definition: Container.cxx:98
virtual std::string getDiscreminantStrOfThis(const Task *askingNode) const
Definition: Container.cxx:45
virtual void setProperty(const std::string &name, const std::string &value)=0
virtual void attachOnCloning() const
Definition: Container.cxx:76
virtual void dettachOnCloning() const
Definition: Container.cxx:84
virtual std::string getProperty(const std::string &name) const =0
virtual void usePythonCache(bool v)
Definition: Container.cxx:125
static const char USE_PYCACHE_PROPERTY[]
Definition: Container.hxx:89
virtual bool isUsingPythonCache()
Definition: Container.cxx:109
virtual bool isAttachedOnCloning() const
Definition: Container.cxx:89
virtual bool canAcceptImposedResource()
Definition: Container.cxx:59
virtual void setAttachOnCloningStatus(bool val) const
Definition: Container.cxx:68
virtual void setProperties(const std::map< std::string, std::string > &properties)
Definition: Container.cxx:103