PaCO++  0.05
InterfaceManager_impl Class Referenceabstract

#include <PaCO++_src.h>

Inheritance diagram for InterfaceManager_impl:
Inheritance graph
Collaboration diagram for InterfaceManager_impl:
Collaboration graph

Public Member Functions

virtual void finish ()=0
 
virtual CORBA::Short getClientId ()=0
 
virtual PaCO::ConnectionInfosgetConnectionInfos ()
 
virtual char * getReturn ()
 
 InterfaceManager_impl (CORBA::ORB_ptr current_orb)
 
virtual void return_ok (const CORBA::Short client_id)
 
virtual void setConnectionInfos ()
 
virtual void setNewNode (const char *node, const CORBA::Short rank)
 
virtual void setReturn (const char *ref)
 
void setReturn (int rtn)
 
virtual void setTopo (const PaCO::PacoTopology_t &topo)
 
virtual void setTotalNode (CORBA::Short totalNode)
 
virtual void setWorkNode (CORBA::Short totalNode)
 
virtual void updateContexts ()=0
 
virtual ~InterfaceManager_impl ()
 

Protected Attributes

CORBA::Short _current_uid
 
PaCO::ConnectionInfos _informations
 
PaCO::ConnectionInfos _informations_temp
 
PaCO::ConnectionInfos::_nodes_seq _nodes
 
CORBA::ORB_ptr _orb
 
int _rtn
 
CORBA::Short _totalNode
 
CORBA::Short _totalNodeReceived
 
CORBA::Short _workNode
 
string return_str
 
PaCO::PacoTopology_t serveur_topo
 

Detailed Description

Definition at line 17 of file PaCO++_src.h.

Constructor & Destructor Documentation

◆ InterfaceManager_impl()

InterfaceManager_impl::InterfaceManager_impl ( CORBA::ORB_ptr  current_orb)

Definition at line 41 of file PaCO++_src.cc.

References _current_uid, _orb, _rtn, _totalNode, _totalNodeReceived, and _workNode.

42 {
43  _orb = current_orb;
44  _current_uid = 0;
45  _totalNode = -1;
46  _workNode = -1;
48  _rtn = 0; // normal
49 }
CORBA::ORB_ptr _orb
Definition: PaCO++_src.h:46
CORBA::Short _totalNodeReceived
Definition: PaCO++_src.h:50
CORBA::Short _totalNode
Definition: PaCO++_src.h:49
CORBA::Short _current_uid
Definition: PaCO++_src.h:48
CORBA::Short _workNode
Definition: PaCO++_src.h:51

◆ ~InterfaceManager_impl()

InterfaceManager_impl::~InterfaceManager_impl ( )
virtual

Definition at line 51 of file PaCO++_src.cc.

51 {}

Member Function Documentation

◆ finish()

virtual void InterfaceManager_impl::finish ( )
pure virtual

Referenced by setConnectionInfos(), and setNewNode().

◆ getClientId()

virtual CORBA::Short InterfaceManager_impl::getClientId ( )
pure virtual

◆ getConnectionInfos()

PaCO::ConnectionInfos * InterfaceManager_impl::getConnectionInfos ( )
virtual

Definition at line 251 of file PaCO++_src.cc.

References _current_uid, _informations, and PaCO::ConnectionInfos::request_uid.

252 {
253 // cerr << "In "<<__FUNCTION__ << ":"<<(void*)this<<endl;
254  _current_uid++;
257  // cerr << "Out "<<__FUNCTION__ << ":"<<(void*)this<<endl;
258  return retour;
259 }
CORBA::Short _current_uid
Definition: PaCO++_src.h:48
PaCO::ConnectionInfos _informations
Definition: PaCO++_src.h:52

◆ getReturn()

char * InterfaceManager_impl::getReturn ( )
virtual

Definition at line 151 of file PaCO++_src.cc.

References return_str.

152 {
153  // cerr << " Return string : " << return_str << endl;
154  char * p = new char[return_str.length()+1];
155  return_str.copy(p,string::npos);
156  p[return_str.length()]=0;
157  // return (char *) return_str.c_str();
158  return p;
159 }

◆ return_ok()

void InterfaceManager_impl::return_ok ( const CORBA::Short  client_id)
virtual

Definition at line 168 of file PaCO++_src.cc.

References _nodes, _orb, and _workNode.

169 {
170  CORBA::ULong i;
171  CORBA::Object_var object;
172  PaCO::InterfaceParallel_var interface;
173  CORBA::ULong lgth;
174  if (_workNode == -1) { lgth = _nodes.length();}
175  else { lgth = _workNode;}
176  cerr << "Adding a new client !!!!" << endl;
177  // cerr << "WARNING : in this version PaCO++ only plays with the last client !" << endl;
178  for (i = 0; i<lgth; i++)
179  {
180  //cerr << "Init work node : " << i << endl;
181  object = _orb->string_to_object(_nodes[i]);
182  interface = PaCO::InterfaceParallel::_narrow(object);
183  interface->connect_return_object(client_id);
184  }
185 }
CORBA::ORB_ptr _orb
Definition: PaCO++_src.h:46
CORBA::Short _workNode
Definition: PaCO++_src.h:51
PaCO::ConnectionInfos::_nodes_seq _nodes
Definition: PaCO++_src.h:47

◆ setConnectionInfos()

void InterfaceManager_impl::setConnectionInfos ( )
virtual

Definition at line 188 of file PaCO++_src.cc.

References _informations, _nodes, _orb, _rtn, _workNode, finish(), and PaCO::ConnectionInfos::serveur_topo.

Referenced by setNewNode().

189 {
190  if (_rtn == 1)
191  cerr << "Return Proxy : Deploy the parallel CORBA object" << endl;
192  else
193  cerr << "Deploy the parallel CORBA object" << endl;
194 
195  // Initialize the nodes
196  CORBA::Object_var object;
197  PaCO::InterfaceParallel_var interface;
198  if (_workNode == -1)
199  {
200  if (_rtn == 1)
201  cerr << "Return Proxy : Deploying all the nodes" << endl;
202  else
203  cerr << "Deploying all the nodes" << endl;
204 
205  for ( CORBA::ULong i = 0; i<_nodes.length(); i++)
206  {
207  if (_rtn == 1)
208  cerr << "Return Proxy : Deploying node : " << i << endl;
209  else
210  cerr << "Deploying node : " << i << endl;
211 
212  object = _orb->string_to_object(_nodes[i]);
213  interface = PaCO::InterfaceParallel::_narrow(object);
214  interface->init_InterfaceParallel(i,_nodes.length(), _informations.serveur_topo);
215 
216  if (_rtn == 0)
217  {
218  cerr << "Exception handling part..." << endl;
220  ref_nodes.length(_nodes.length());
221  for (CORBA::ULong j = 0; j<_nodes.length(); j++)
222  {
223  ref_nodes[j] = _nodes[j];
224  }
225  interface->setRef(ref_nodes);
226  cerr << "Exception handling part...done" << endl;
227  }
228  }
229  }
230  else
231  {
232  cerr << "Deploying " << _workNode << " nodes" << endl;
233  for ( CORBA::Long i = 0; i<_workNode; i++)
234  {
235  cerr << "Deploying node : " << i << endl;
236  object = _orb->string_to_object(_nodes[i]);
237  interface = PaCO::InterfaceParallel::_narrow(object);
238  interface->init_InterfaceParallel(i,_nodes.length(), _informations.serveur_topo);
239  }
240  }
241  if (_rtn == 0)
242  {
243  // connecting the client to the interface manager
244  cerr << "Finishing...\n";
245  this->finish();
246  cerr << "Finishing...done\n";
247  }
248 }
CORBA::ORB_ptr _orb
Definition: PaCO++_src.h:46
sequence< string > ref
Definition: PaCO++.idl:97
PaCO::ConnectionInfos _informations
Definition: PaCO++_src.h:52
PacoTopology_t serveur_topo
Definition: PaCO++.idl:61
virtual void finish()=0
CORBA::Short _workNode
Definition: PaCO++_src.h:51
PaCO::ConnectionInfos::_nodes_seq _nodes
Definition: PaCO++_src.h:47
Here is the call graph for this function:

◆ setNewNode()

void InterfaceManager_impl::setNewNode ( const char *  node,
const CORBA::Short  rank 
)
virtual

Definition at line 88 of file PaCO++_src.cc.

References _informations, _informations_temp, _nodes, _rtn, _totalNode, _totalNodeReceived, finish(), PaCO::ConnectionInfos::nodes, PaCO::ConnectionInfos::serveur_topo, and setConnectionInfos().

89 {
90 
91 try
92  {
93  //CORBA::Object_var object = _orb->string_to_object(node);
94  //PaCO::InterfaceParallel_var interface = PaCO::InterfaceParallel::_narrow(object);
95  // CORBA::Short rank = interface->getDeployRank();
96 
97  if (_rtn == 1)
98  cerr << "Return Proxy : Adding node : " << rank << endl;
99  else
100  cerr << "Adding node : " << rank << endl;
101  // _informations_temp.nodes[_totalNodeReceived] = node;
102  _informations_temp.nodes[rank] = node;
105  {
106  if (_rtn == 1)
107  cerr << "Return Proxy : All the node are registered" << endl;
108  else
109  cerr << "All the node are registered" << endl;
110 
114  if (_rtn == 1)
115  {
116  // connection for the server side
117  this->finish();
118  }
119  _totalNodeReceived = 0;
121  }
122  }
123  catch (const CORBA::Exception & e)
124  {
125  cerr << " Node : " << node << endl;
126  cerr << " InterfaceManager_impl::setNewNode : Exception : " << e << endl;
127  }
128 
129 }
CORBA::Short _totalNodeReceived
Definition: PaCO++_src.h:50
PaCO::ConnectionInfos _informations_temp
Definition: PaCO++_src.h:53
CORBA::Short _totalNode
Definition: PaCO++_src.h:49
PaCO::ConnectionInfos _informations
Definition: PaCO++_src.h:52
PacoTopology_t serveur_topo
Definition: PaCO++.idl:61
virtual void setConnectionInfos()
Definition: PaCO++_src.cc:188
virtual void finish()=0
sequence< string > nodes
Definition: PaCO++.idl:59
PaCO::ConnectionInfos::_nodes_seq _nodes
Definition: PaCO++_src.h:47
Here is the call graph for this function:

◆ setReturn() [1/2]

void InterfaceManager_impl::setReturn ( const char *  ref)
virtual

Definition at line 132 of file PaCO++_src.cc.

References _nodes, _orb, _workNode, and return_str.

133 {
134  return_str = (char *) ref;
135  // Now we have to give this reference to all the nodes
136  CORBA::ULong i;
137  CORBA::Object_var object;
138  PaCO::InterfaceParallel_var interface;
139  CORBA::ULong lgth;
140  if (_workNode == -1) { lgth = _nodes.length();}
141  else { lgth = _workNode;}
142  for (i = 0; i<lgth; i++)
143  {
144  object = _orb->string_to_object(_nodes[i]);
145  interface = PaCO::InterfaceParallel::_narrow(object);
146  interface->refReturnObject(return_str.c_str());
147  }
148 }
CORBA::ORB_ptr _orb
Definition: PaCO++_src.h:46
sequence< string > ref
Definition: PaCO++.idl:97
CORBA::Short _workNode
Definition: PaCO++_src.h:51
PaCO::ConnectionInfos::_nodes_seq _nodes
Definition: PaCO++_src.h:47

◆ setReturn() [2/2]

void InterfaceManager_impl::setReturn ( int  rtn)

Definition at line 54 of file PaCO++_src.cc.

References _rtn.

55 {
56  _rtn = rtn;
57 }

◆ setTopo()

void InterfaceManager_impl::setTopo ( const PaCO::PacoTopology_t topo)
virtual

obsolete

Definition at line 75 of file PaCO++_src.cc.

References serveur_topo, setTotalNode(), and PaCO::PacoTopology_s::total.

76 {
77  serveur_topo = topo;
78  setTotalNode(topo.total);
79 }
PaCO::PacoTopology_t serveur_topo
Definition: PaCO++_src.h:54
virtual void setTotalNode(CORBA::Short totalNode)
Definition: PaCO++_src.cc:60
unsigned long total
Definition: PaCO++.idl:35
Here is the call graph for this function:

◆ setTotalNode()

void InterfaceManager_impl::setTotalNode ( CORBA::Short  totalNode)
virtual

Definition at line 60 of file PaCO++_src.cc.

References _informations, _informations_temp, _totalNode, PaCO::ConnectionInfos::nodes, PaCO::ConnectionInfos::serveur_topo, PaCO::PacoTopology_s::total, and updateContexts().

Referenced by setTopo().

61 {
62  if (totalNode > 0)
63  {
64  _totalNode = totalNode;
65  // Init de _informations_temp;
70  }
72 }
PaCO::ConnectionInfos _informations_temp
Definition: PaCO++_src.h:53
virtual void updateContexts()=0
CORBA::Short _totalNode
Definition: PaCO++_src.h:49
PaCO::ConnectionInfos _informations
Definition: PaCO++_src.h:52
unsigned long total
Definition: PaCO++.idl:35
PacoTopology_t serveur_topo
Definition: PaCO++.idl:61
sequence< string > nodes
Definition: PaCO++.idl:59
Here is the call graph for this function:

◆ setWorkNode()

void InterfaceManager_impl::setWorkNode ( CORBA::Short  totalNode)
virtual

Definition at line 82 of file PaCO++_src.cc.

References _workNode.

83 {
84  _workNode = totalNode;
85 }
CORBA::Short _workNode
Definition: PaCO++_src.h:51

◆ updateContexts()

virtual void InterfaceManager_impl::updateContexts ( )
pure virtual

Referenced by setTotalNode().

Member Data Documentation

◆ _current_uid

CORBA::Short InterfaceManager_impl::_current_uid
protected

Definition at line 48 of file PaCO++_src.h.

Referenced by getConnectionInfos(), and InterfaceManager_impl().

◆ _informations

PaCO::ConnectionInfos InterfaceManager_impl::_informations
protected

Definition at line 52 of file PaCO++_src.h.

Referenced by getConnectionInfos(), setConnectionInfos(), setNewNode(), and setTotalNode().

◆ _informations_temp

PaCO::ConnectionInfos InterfaceManager_impl::_informations_temp
protected

Definition at line 53 of file PaCO++_src.h.

Referenced by setNewNode(), and setTotalNode().

◆ _nodes

PaCO::ConnectionInfos::_nodes_seq InterfaceManager_impl::_nodes
protected

Definition at line 47 of file PaCO++_src.h.

Referenced by return_ok(), setConnectionInfos(), setNewNode(), and setReturn().

◆ _orb

CORBA::ORB_ptr InterfaceManager_impl::_orb
protected

◆ _rtn

int InterfaceManager_impl::_rtn
protected

Definition at line 56 of file PaCO++_src.h.

Referenced by InterfaceManager_impl(), setConnectionInfos(), setNewNode(), and setReturn().

◆ _totalNode

◆ _totalNodeReceived

CORBA::Short InterfaceManager_impl::_totalNodeReceived
protected

Definition at line 50 of file PaCO++_src.h.

Referenced by InterfaceManager_impl(), and setNewNode().

◆ _workNode

CORBA::Short InterfaceManager_impl::_workNode
protected

◆ return_str

string InterfaceManager_impl::return_str
protected

Definition at line 55 of file PaCO++_src.h.

Referenced by getReturn(), and setReturn().

◆ serveur_topo

PaCO::PacoTopology_t InterfaceManager_impl::serveur_topo
protected

Definition at line 54 of file PaCO++_src.h.

Referenced by setTopo().


The documentation for this class was generated from the following files: