PaCO++  0.05
PaCO_operation Class Reference

#include <PaCO++_operation.h>

Collaboration diagram for PaCO_operation:
Collaboration graph

Classes

struct  _com_info_t
 

Public Types

typedef map< long, _com_info_t * > _com_info_map_t
 

Public Member Functions

void clearAllScheduleMemory ()
 
virtual void clearCommunicationMemoryId (long id) throw (InvalidArgument)
 
virtual void clearScheduleMemoryId (long id) throw (InvalidArgument)
 
virtual void configureTopo ()
 
_com_info_tgetComMemoryId (long id)
 
virtual void init (int rank, int total)
 
virtual void init_complete_context (PaCO_operation *op)
 
virtual void init_context (PaCO_operation *op)
 
virtual void init_context_args (PaCO_operation *op)
 
virtual void init_context_proxy (PaCO_operation *op)
 
virtual void init_return_context (PaCO_operation *op)
 
virtual void noCommunicationMemory ()
 
 PaCO_operation (int _number_arguments)
 
virtual void setClientId (CORBA::Short request_uid)
 
virtual void setClientTopo (PaCO::PacoTopology_t _client_topo, const string &way) throw (BadWayString)
 
virtual void setClientTopo (PaCO::PacoTopology_t _client_topo)
 
virtual void setComFab (paco_fabrique_com *fc)
 
virtual void setComSchedulingFab (paco_fabrique_comScheduling *ft)
 
virtual void setDisLibArg (int arg_number, const string &lib_name, const string &way) throw (BadWayString)
 
virtual void setFabManager (paco_fabrique_manager *fm)
 
virtual void setLibCom (const string &LibCom, void *_group)
 
virtual void setLibComScheduling (const string &LibComScheduling)
 
virtual void setLibThread (const string &LibThread)
 
virtual void setServerTopo (PaCO::PacoTopology_t _serveur_topo, const string &way) throw (BadWayString)
 
virtual void setThreadFab (paco_fabrique_thread *ft)
 
virtual void setTypeClient (bool type)
 
virtual void useCommunicationMemoryId (long id) throw (InvalidArgument)
 
virtual ~PaCO_operation ()
 

Public Attributes

_com_info_map_t _com_info_map
 
long _current_id
 
bool _exception
 
int _level
 
PaCO::distLoc_t _mode
 
CORBA::Short client_id
 
paco_fabrique_comFabCom
 
paco_fabrique_comSchedulingFabComScheduling
 
paco_fabrique_managerFabManager
 
paco_fabrique_threadFabThread
 
void * group
 
DistributionLibrary ** libraries_in
 
std::vector< char * > libraries_in_name
 
DistributionLibrary ** libraries_out
 
std::vector< char * > libraries_out_name
 
paco_commy_com
 
paco_comSchedulingmy_comScheduling
 
paco_conditionmy_condition
 
paco_conditionmy_condition2
 
paco_mutexmy_mutex
 
paco_mutexmy_mutex2
 
paco_mutexmy_mutex3
 
int myRank
 
PaCO::PacoTopology_t mytopo
 
int number_arguments
 
int number_stubs
 
int return_op
 
PaCO::PacoTopology_t serveur_topo_aller
 
PaCO::PacoTopology_t serveur_topo_retour
 
bool termine
 
bool termine2
 
bool typeClient
 

Detailed Description

Definition at line 29 of file PaCO++_operation.h.

Member Typedef Documentation

◆ _com_info_map_t

Definition at line 143 of file PaCO++_operation.h.

Constructor & Destructor Documentation

◆ PaCO_operation()

PaCO_operation::PaCO_operation ( int  _number_arguments)

Definition at line 13 of file PaCO++_operation.cc.

References _current_id, _exception, _level, _mode, client_id, FabCom, FabComScheduling, FabManager, FabThread, libraries_in, libraries_in_name, libraries_out, libraries_out_name, my_comScheduling, myRank, mytopo, number_arguments, paco_getFabriqueManager(), return_op, PaCO::ServerSide, termine, termine2, PaCO::PacoTopology_s::total, and typeClient.

14 {
15  // Default case : sequential client
16  _current_id = -1;
17  myRank = 0;
18  mytopo.total = 1;
20  typeClient = false;
21  termine = false;
22  termine2 = false;
23  client_id = -1;
24  number_arguments = _number_arguments;
27 #ifdef PACO_WARN_DISTLIB
30 #endif
31  for(int i=0; i<number_arguments; i++)
32  {
33  libraries_in[i] = NULL;
34  libraries_out[i] = NULL;
35 #ifdef PACO_WARN_DISTLIB
36  libraries_in_name[i]=NULL;
37  libraries_out_name[i]=NULL;
38 #endif
39  }
41  FabThread=0;
42  FabCom=0;
45  return_op = 0;
46 
47  // Exception handling
48  _exception = false;
49  _level = 0;
50 
51  // Timing
52 #ifdef PADICO
53  _ticks=(padico_timing_t*)malloc(sizeof(padico_timing_t)*10);
54 #endif
55 
56 }
DistributionLibrary ** libraries_out
DistributionLibrary ** libraries_in
paco_fabrique_thread * FabThread
paco_fabrique_com * FabCom
paco_fabrique_comScheduling * FabComScheduling
unsigned long total
Definition: PaCO++.idl:35
CORBA::Short client_id
PaCO::PacoTopology_t mytopo
paco_comScheduling * my_comScheduling
std::vector< char * > libraries_in_name
std::vector< char * > libraries_out_name
paco_fabrique_manager * paco_getFabriqueManager()
Definition: PaCO++_src.cc:28
PaCO::distLoc_t _mode
paco_fabrique_manager * FabManager
Here is the call graph for this function:

◆ ~PaCO_operation()

PaCO_operation::~PaCO_operation ( )
virtual

Definition at line 58 of file PaCO++_operation.cc.

References libraries_in, libraries_in_name, libraries_out, libraries_out_name, my_condition, my_condition2, my_mutex, my_mutex2, my_mutex3, and number_arguments.

59 {
60 #ifdef PACO_WARN_DISTLIB
61  for(int i=0; i<number_arguments; i++)
62  {
63  if (libraries_in_name[i])
64  free(libraries_in_name[i]);
65  if (libraries_out_name[i])
66  free(libraries_out_name[i]);
67  }
68 #endif
69  delete libraries_in;
70  delete libraries_out;
71  delete my_mutex;
72  delete my_condition;
73  delete my_mutex2;
74  delete my_condition2;
75  delete my_mutex3;
76  // Memories must be deleted
77 }
DistributionLibrary ** libraries_out
DistributionLibrary ** libraries_in
paco_mutex * my_mutex
paco_mutex * my_mutex2
paco_mutex * my_mutex3
std::vector< char * > libraries_in_name
std::vector< char * > libraries_out_name
paco_condition * my_condition
paco_condition * my_condition2

Member Function Documentation

◆ clearAllScheduleMemory()

void PaCO_operation::clearAllScheduleMemory ( )

Definition at line 614 of file PaCO++_operation.cc.

References paco_comScheduling::clearAllSchedules(), and my_comScheduling.

Referenced by configureTopo().

615 {
616  if (my_comScheduling)
618 }
virtual void clearAllSchedules()
paco_comScheduling * my_comScheduling
Here is the call graph for this function:

◆ clearCommunicationMemoryId()

void PaCO_operation::clearCommunicationMemoryId ( long  id)
throw (InvalidArgument
)
virtual

Definition at line 586 of file PaCO++_operation.cc.

References _com_info_map, paco_comScheduling::clearScheduleId(), and my_comScheduling.

587 {
588  if (id<0)
589  throw new InvalidArgument("clearCommunicationMemeoryId expects an id >0");
590 
591 #ifdef DEBUG_INTERNAL
592  std::cerr <<"[INFO] clearing communication memory Id "<<id<<endl;
593 #endif
594 
595  _com_info_map_t::iterator it2 = _com_info_map.find(id);
596  if (it2 != _com_info_map.end())
597  {
598  delete _com_info_map[id];
599  _com_info_map.erase(it2);
600  }
601 
602  assert(my_comScheduling!=0);
604 }
_com_info_map_t _com_info_map
virtual void clearScheduleId(long id)
paco_comScheduling * my_comScheduling
Here is the call graph for this function:

◆ clearScheduleMemoryId()

void PaCO_operation::clearScheduleMemoryId ( long  id)
throw (InvalidArgument
)
virtual

Definition at line 607 of file PaCO++_operation.cc.

References paco_comScheduling::clearScheduleId(), and my_comScheduling.

608 {
609  assert(my_comScheduling!=0);
611 }
virtual void clearScheduleId(long id)
paco_comScheduling * my_comScheduling
Here is the call graph for this function:

◆ configureTopo()

void PaCO_operation::configureTopo ( )
virtual

Definition at line 447 of file PaCO++_operation.cc.

References clearAllScheduleMemory(), libraries_in, libraries_out, myRank, number_arguments, return_op, serveur_topo_aller, serveur_topo_retour, DistributionLibrary::setDestTopology(), DistributionLibrary::setNodeRank(), and DistributionLibrary::setSourceTopology().

Referenced by init_complete_context().

448  {
449  // DO NOT FORGET TO CLEAR MEMORIES (WHAT ABOUT COMMUNICATION MATRICES??) !!!!
451 
452  if (return_op == 0)
453  {
454  for (int i = 0; i < number_arguments; i++)
455  {
456  if (libraries_in[i] != NULL)
457  {
461  }
462  if (libraries_out[i] != NULL)
463  {
467  }
468  }
469  }
470  }
virtual void setDestTopology(PaCO::PacoTopology_t topo)=0
DistributionLibrary ** libraries_out
PaCO::PacoTopology_t serveur_topo_retour
DistributionLibrary ** libraries_in
PaCO::PacoTopology_t serveur_topo_aller
void clearAllScheduleMemory()
virtual void setNodeRank(long Rank)=0
virtual void setSourceTopology(PaCO::PacoTopology_t topo)=0
Here is the call graph for this function:

◆ getComMemoryId()

PaCO_operation::_com_info_t * PaCO_operation::getComMemoryId ( long  id)

Definition at line 527 of file PaCO++_operation.cc.

References _com_info_map.

528 {
529  // lookup existing communication info
530  _com_info_map_t::iterator it2 = _com_info_map.find(id);
531  if (it2 != _com_info_map.end())
532  {
533 #ifdef DEBUG_INTERNAL
534  std::cerr <<"[INFO] found communication info for Id "<<id<<endl;
535 #endif
536  return _com_info_map[id];
537  }
538  else
539  {
540  return NULL;
541  }
542 }
_com_info_map_t _com_info_map

◆ init()

void PaCO_operation::init ( int  rank,
int  total 
)
virtual

Definition at line 342 of file PaCO++_operation.cc.

References myRank, mytopo, and PaCO::PacoTopology_s::total.

343 {
344  myRank = rank;
345  mytopo.total = total;
346 }
unsigned long total
Definition: PaCO++.idl:35
PaCO::PacoTopology_t mytopo

◆ init_complete_context()

virtual void PaCO_operation::init_complete_context ( PaCO_operation op)
inlinevirtual

Definition at line 87 of file PaCO++_operation.h.

References configureTopo().

87 { cerr << "WARNING : init_complete_context of PaCO_Operation" << endl;}
Here is the call graph for this function:

◆ init_context()

void PaCO_operation::init_context ( PaCO_operation op)
virtual

Definition at line 86 of file PaCO++_operation.cc.

References FabCom, FabComScheduling, FabManager, FabThread, group, my_com, my_comScheduling, my_condition, my_condition2, my_mutex, my_mutex2, my_mutex3, myRank, mytopo, number_stubs, serveur_topo_aller, serveur_topo_retour, setServerTopo(), PaCO::PacoTopology_s::total, and typeClient.

87 {
88  myRank = op->myRank ;
89  mytopo = op->mytopo ;
91 
92  FabManager = op->FabManager;
93 
94  group = op->group;
95  my_com = op->my_com ;
96  FabCom = op->FabCom ;
97 
100 
101  // Client part
102  typeClient = op->typeClient ;
103  if (op->serveur_topo_aller.total > 0)
104  {
106  }
107  if (op->serveur_topo_retour.total > 0)
108  {
110  }
111 
112  // Server part
113  FabThread = op->FabThread ;
114  my_mutex = op->my_mutex ;
115  my_condition = op->my_condition ;
116  my_mutex2 = op->my_mutex2 ;
118  my_mutex3 = op->my_mutex3 ;
119 }
PaCO::PacoTopology_t serveur_topo_retour
paco_mutex * my_mutex
paco_mutex * my_mutex2
PaCO::PacoTopology_t serveur_topo_aller
paco_fabrique_thread * FabThread
paco_fabrique_com * FabCom
paco_fabrique_comScheduling * FabComScheduling
paco_mutex * my_mutex3
unsigned long total
Definition: PaCO++.idl:35
PaCO::PacoTopology_t mytopo
paco_comScheduling * my_comScheduling
virtual void setServerTopo(PaCO::PacoTopology_t _serveur_topo, const string &way)
paco_condition * my_condition
paco_fabrique_manager * FabManager
paco_condition * my_condition2
Here is the call graph for this function:

◆ init_context_args()

void PaCO_operation::init_context_args ( PaCO_operation op)
virtual

Definition at line 173 of file PaCO++_operation.cc.

References _mode, group, libraries_in, libraries_out, number_arguments, return_op, and DistributionLibrary::setCommunicator().

174 {
175  return_op = 1;
177  _mode = op->_mode;
180 
181  for(int i=0; i<number_arguments; i++)
182  {
183  if (libraries_in[i])
184  {
186  }
187  if (libraries_out[i])
188  {
190  }
191  }
192 }
virtual void setCommunicator(void *group)=0
DistributionLibrary ** libraries_out
DistributionLibrary ** libraries_in
PaCO::distLoc_t _mode
Here is the call graph for this function:

◆ init_context_proxy()

void PaCO_operation::init_context_proxy ( PaCO_operation op)
virtual

Definition at line 153 of file PaCO++_operation.cc.

References group, libraries_in, libraries_out, number_arguments, and DistributionLibrary::setCommunicator().

154 {
158 
159  for(int i=0; i<number_arguments; i++)
160  {
161  if (libraries_in[i])
162  {
164  }
165  if (libraries_out[i])
166  {
168  }
169  }
170 }
virtual void setCommunicator(void *group)=0
DistributionLibrary ** libraries_out
DistributionLibrary ** libraries_in
Here is the call graph for this function:

◆ init_return_context()

void PaCO_operation::init_return_context ( PaCO_operation op)
virtual

Definition at line 122 of file PaCO++_operation.cc.

References FabCom, FabComScheduling, FabManager, FabThread, group, my_com, my_comScheduling, my_condition, my_condition2, my_mutex, my_mutex2, my_mutex3, myRank, mytopo, number_stubs, serveur_topo_aller, setServerTopo(), PaCO::PacoTopology_s::total, and typeClient.

123 {
124  myRank = op->myRank ;
125  mytopo = op->mytopo ;
126  number_stubs = op->number_stubs ;
127 
128  FabManager = op->FabManager;
129 
130  group = op->group ;
131  my_com = op->my_com ;
132  FabCom = op->FabCom ;
133 
136 
137  // Client part
138  typeClient = op->typeClient ;
139  if (op->serveur_topo_aller.total > 0)
140  {
142  }
143  // Server part
144  FabThread = op->FabThread ;
145  my_mutex = op->my_mutex ;
146  my_condition = op->my_condition ;
147  my_mutex2 = op->my_mutex2 ;
149  my_mutex3 = op->my_mutex3 ;
150 }
paco_mutex * my_mutex
paco_mutex * my_mutex2
PaCO::PacoTopology_t serveur_topo_aller
paco_fabrique_thread * FabThread
paco_fabrique_com * FabCom
paco_fabrique_comScheduling * FabComScheduling
paco_mutex * my_mutex3
unsigned long total
Definition: PaCO++.idl:35
PaCO::PacoTopology_t mytopo
paco_comScheduling * my_comScheduling
virtual void setServerTopo(PaCO::PacoTopology_t _serveur_topo, const string &way)
paco_condition * my_condition
paco_fabrique_manager * FabManager
paco_condition * my_condition2
Here is the call graph for this function:

◆ noCommunicationMemory()

void PaCO_operation::noCommunicationMemory ( )
virtual

Definition at line 545 of file PaCO++_operation.cc.

References _current_id.

546 {
547  _current_id = -1; // _DO_NOT_USE_COMMUNICATION_MEMORY;
548 
549 #ifdef DEBUG_INTERNAL
550  std::cerr <<"[INFO] not using memory"<<endl;
551 #endif
552 
553 }

◆ setClientId()

void PaCO_operation::setClientId ( CORBA::Short  request_uid)
virtual

Definition at line 80 of file PaCO++_operation.cc.

References client_id.

81 {
82  client_id = request_uid;
83 }
CORBA::Short client_id

◆ setClientTopo() [1/2]

void PaCO_operation::setClientTopo ( PaCO::PacoTopology_t  _client_topo,
const string &  way 
)
throw (BadWayString
)
virtual

Definition at line 405 of file PaCO++_operation.cc.

References serveur_topo_aller, and serveur_topo_retour.

406 {
407  if (way == "in")
408  {
409  serveur_topo_retour = _client_topo;
410  }
411  else if (way == "out")
412  {
413  serveur_topo_aller = _client_topo;
414  }
415  else
416  {
417  // Bad way string
418  throw BadWayString(way);
419  }
420 }
PaCO::PacoTopology_t serveur_topo_retour
PaCO::PacoTopology_t serveur_topo_aller

◆ setClientTopo() [2/2]

void PaCO_operation::setClientTopo ( PaCO::PacoTopology_t  _client_topo)
virtual

Definition at line 423 of file PaCO++_operation.cc.

References serveur_topo_retour.

424 {
425  serveur_topo_retour = _client_topo;
426 }
PaCO::PacoTopology_t serveur_topo_retour

◆ setComFab()

void PaCO_operation::setComFab ( paco_fabrique_com fc)
virtual

If not set, use the fabrique manager

Definition at line 201 of file PaCO++_operation.cc.

References FabCom.

202 {
203  FabCom = fc;
204 }
paco_fabrique_com * FabCom

◆ setComSchedulingFab()

void PaCO_operation::setComSchedulingFab ( paco_fabrique_comScheduling ft)
virtual

If not set, use the fabrique manager If not set, use the fabrique manager

Definition at line 501 of file PaCO++_operation.cc.

References FabComScheduling.

502 {
503  FabComScheduling = fcs;
504 }
paco_fabrique_comScheduling * FabComScheduling

◆ setDisLibArg()

void PaCO_operation::setDisLibArg ( int  arg_number,
const string &  lib_name,
const string &  way 
)
throw (BadWayString
)
virtual

If not set, use the fabrique manager Arg part

Definition at line 261 of file PaCO++_operation.cc.

References paco_fabrique_distribution::create(), FabManager, paco_fabrique_manager::get_distribution(), libraries_in, libraries_in_name, libraries_out, and libraries_out_name.

262 {
263  if (way == "inout")
264  {
265  libraries_in [arg_number] = FabManager->get_distribution(lib_name)->create();
266  libraries_out[arg_number] = FabManager->get_distribution(lib_name)->create();
267 #ifdef PACO_WARN_DISTLIB
268  if (libraries_in_name[arg_number]) free(libraries_in_name[arg_number]);
269  if (libraries_out_name[arg_number]) free(libraries_out_name[arg_number]);
270  libraries_in_name [arg_number] = strdup(lib_name.c_str());
271  libraries_out_name [arg_number] = strdup(lib_name.c_str());
272 #endif
273  }
274  else if (way == "in")
275  {
276  libraries_in[arg_number] = FabManager->get_distribution(lib_name)->create();
277 #ifdef PACO_WARN_DISTLIB
278  if (libraries_in_name[arg_number]) free(libraries_in_name[arg_number]);
279  libraries_in_name [arg_number] = strdup(lib_name.c_str());
280 #endif
281  }
282  else if (way == "out")
283  {
284  libraries_out[arg_number] = FabManager->get_distribution(lib_name)->create();
285 #ifdef PACO_WARN_DISTLIB
286  if (libraries_out_name[arg_number]) free(libraries_out_name[arg_number]);
287  libraries_out_name [arg_number] = strdup(lib_name.c_str());
288 #endif
289  }
290  else
291  {
292  // Bad way string
293  throw BadWayString(way);
294  }
295 }
DistributionLibrary ** libraries_out
DistributionLibrary ** libraries_in
paco_fabrique_distribution * get_distribution(const ::std::string &fabname)
virtual DistributionLibrary * create()=0
std::vector< char * > libraries_in_name
std::vector< char * > libraries_out_name
paco_fabrique_manager * FabManager
Here is the call graph for this function:

◆ setFabManager()

void PaCO_operation::setFabManager ( paco_fabrique_manager fm)
virtual

Associate a pfm to this object. By default, paco_operation is associated to a FabriqueManager (cf paco_getFabriqueManager())

Definition at line 195 of file PaCO++_operation.cc.

References FabManager.

196 {
197  FabManager = fm;
198 }
paco_fabrique_manager * FabManager

◆ setLibCom()

void PaCO_operation::setLibCom ( const string &  LibCom,
void *  _group 
)
virtual

If not set, use the fabrique manager

Definition at line 207 of file PaCO++_operation.cc.

References FabCom, FabManager, paco_fabrique_manager::get_com(), group, libraries_in, libraries_out, my_com, number_arguments, paco_fabrique_com::paco_create(), and DistributionLibrary::setCommunicator().

208 {
209  if (FabCom==0)
210  {
211  if (FabManager)
212  FabCom = FabManager->get_com(LibCom);
213  else
214  {
215  cerr << "Error: Unable to instantiate lib com "<<LibCom<<endl;
216  abort();
217  }
218  }
219 
220  group = _group;
222 
223  for(int i=0; i<number_arguments; i++)
224  {
225  if (libraries_in[i])
226  {
228  }
229  if (libraries_out[i])
230  {
232  }
233  }
234 }
virtual void setCommunicator(void *group)=0
DistributionLibrary ** libraries_out
DistributionLibrary ** libraries_in
paco_fabrique_com * FabCom
virtual paco_com * paco_create(void *group)=0
paco_fabrique_manager * FabManager
paco_fabrique_com * get_com(const ::std::string &fabname)
Here is the call graph for this function:

◆ setLibComScheduling()

void PaCO_operation::setLibComScheduling ( const string &  LibComScheduling)
virtual

If not set, use the fabrique manager

Definition at line 507 of file PaCO++_operation.cc.

References paco_fabrique_comScheduling::create_comScheduling(), FabComScheduling, FabManager, paco_fabrique_manager::get_comScheduling(), and my_comScheduling.

508 {
509  if (FabComScheduling==0)
510  {
511  if (FabManager)
512  FabComScheduling = FabManager->get_comScheduling(LibComScheduling);
513  else
514  {
515  cerr << "Error: Unable to instantiate lib communication schedule "<<LibComScheduling<<endl;
516  abort();
517  }
518 
519  }
520 
521  if (my_comScheduling)
522  delete my_comScheduling;
524 }
paco_fabrique_comScheduling * get_comScheduling(const ::std::string &fabname)
virtual paco_comScheduling * create_comScheduling()=0
paco_fabrique_comScheduling * FabComScheduling
paco_comScheduling * my_comScheduling
paco_fabrique_manager * FabManager
Here is the call graph for this function:

◆ setLibThread()

void PaCO_operation::setLibThread ( const string &  LibThread)
virtual

If not set, use the fabrique manager

Definition at line 479 of file PaCO++_operation.cc.

References FabManager, FabThread, paco_fabrique_manager::get_thread(), my_condition, my_condition2, my_mutex, my_mutex2, my_mutex3, paco_fabrique_thread::paco_create_condition(), and paco_fabrique_thread::paco_create_mutex().

480 {
481  if (FabThread==0)
482  {
483  if (FabManager)
484  FabThread = FabManager->get_thread(LibThread);
485  else
486  {
487  cerr << "Error: Unable to instantiate lib thread "<<LibThread<<endl;
488  abort();
489  }
490 
491  }
492 
498 }
paco_mutex * my_mutex
paco_mutex * my_mutex2
virtual paco_mutex * paco_create_mutex()=0
virtual paco_condition * paco_create_condition(paco_mutex *mutex)=0
paco_fabrique_thread * FabThread
paco_mutex * my_mutex3
paco_condition * my_condition
paco_fabrique_manager * FabManager
paco_fabrique_thread * get_thread(const ::std::string &fabname)
paco_condition * my_condition2
Here is the call graph for this function:

◆ setServerTopo()

void PaCO_operation::setServerTopo ( PaCO::PacoTopology_t  _serveur_topo,
const string &  way 
)
throw (BadWayString
)
virtual

Definition at line 429 of file PaCO++_operation.cc.

References serveur_topo_aller, and serveur_topo_retour.

Referenced by init_context(), and init_return_context().

430 {
431  if (way == "in")
432  {
433  serveur_topo_aller = _serveur_topo;
434  }
435  else if (way == "out")
436  {
437  serveur_topo_retour = _serveur_topo;
438  }
439  else
440  {
441  // Bad way string
442  throw BadWayString(way);
443  }
444 }
PaCO::PacoTopology_t serveur_topo_retour
PaCO::PacoTopology_t serveur_topo_aller

◆ setThreadFab()

void PaCO_operation::setThreadFab ( paco_fabrique_thread ft)
virtual

If not set, use the fabrique manager

Definition at line 473 of file PaCO++_operation.cc.

References FabThread.

474 {
475  FabThread = ft;
476 }
paco_fabrique_thread * FabThread

◆ setTypeClient()

void PaCO_operation::setTypeClient ( bool  type)
virtual

Object part

Definition at line 398 of file PaCO++_operation.cc.

References typeClient.

399 {
400  typeClient = type;
401 }

◆ useCommunicationMemoryId()

void PaCO_operation::useCommunicationMemoryId ( long  id)
throw (InvalidArgument
)
virtual

Definition at line 556 of file PaCO++_operation.cc.

References _current_id, libraries_in, libraries_in_name, number_arguments, and DistributionLibrary::setComId().

557 {
558  if (id<0)
559  throw new InvalidArgument("useCommunicationMemeoryId expect an id >0");
560 
561 #ifdef DEBUG_INTERNAL
562  std::cerr <<"[INFO] using memory Id "<<id<<endl;
563 #endif
564 
565  // set current id
566  _current_id = id;
567 
568  // Beta patch
569  for(int i=0; i<number_arguments; i++)
570  {
571  if (libraries_in[i])
572  {
573  bool res=libraries_in[i]->setComId(id);
574  if (!res) {
575 #ifdef PACO_WARN_DISTLIB
576  std::cerr << "warning: argument #"<<i<<" with dist lib "<<libraries_in_name[i]<<" does not support comm cache\n";
577 #else
578  std::cerr << "warning: argument #"<<i<<" does not support comm cache\n";
579 #endif
580  }
581  }
582  }
583 }
DistributionLibrary ** libraries_in
virtual bool setComId(long id)
std::vector< char * > libraries_in_name
Here is the call graph for this function:

Member Data Documentation

◆ _com_info_map

_com_info_map_t PaCO_operation::_com_info_map

Definition at line 144 of file PaCO++_operation.h.

Referenced by clearCommunicationMemoryId(), and getComMemoryId().

◆ _current_id

long PaCO_operation::_current_id

◆ _exception

bool PaCO_operation::_exception

Definition at line 131 of file PaCO++_operation.h.

Referenced by PaCO_operation().

◆ _level

int PaCO_operation::_level

Definition at line 132 of file PaCO++_operation.h.

Referenced by PaCO_operation().

◆ _mode

PaCO::distLoc_t PaCO_operation::_mode

Definition at line 96 of file PaCO++_operation.h.

Referenced by init_context_args(), and PaCO_operation().

◆ client_id

CORBA::Short PaCO_operation::client_id

Definition at line 128 of file PaCO++_operation.h.

Referenced by PaCO_operation(), and setClientId().

◆ FabCom

paco_fabrique_com* PaCO_operation::FabCom

◆ FabComScheduling

paco_fabrique_comScheduling* PaCO_operation::FabComScheduling

◆ FabManager

◆ FabThread

paco_fabrique_thread* PaCO_operation::FabThread

◆ group

void* PaCO_operation::group

◆ libraries_in

◆ libraries_in_name

std::vector<char*> PaCO_operation::libraries_in_name

◆ libraries_out

◆ libraries_out_name

std::vector<char*> PaCO_operation::libraries_out_name

Definition at line 116 of file PaCO++_operation.h.

Referenced by PaCO_operation(), setDisLibArg(), and ~PaCO_operation().

◆ my_com

paco_com* PaCO_operation::my_com

◆ my_comScheduling

◆ my_condition

paco_condition* PaCO_operation::my_condition

◆ my_condition2

paco_condition* PaCO_operation::my_condition2

◆ my_mutex

paco_mutex* PaCO_operation::my_mutex

◆ my_mutex2

paco_mutex* PaCO_operation::my_mutex2

◆ my_mutex3

paco_mutex* PaCO_operation::my_mutex3

◆ myRank

int PaCO_operation::myRank

◆ mytopo

◆ number_arguments

int PaCO_operation::number_arguments

◆ number_stubs

int PaCO_operation::number_stubs

Definition at line 95 of file PaCO++_operation.h.

Referenced by init_context(), and init_return_context().

◆ return_op

int PaCO_operation::return_op

Definition at line 91 of file PaCO++_operation.h.

Referenced by configureTopo(), init_context_args(), and PaCO_operation().

◆ serveur_topo_aller

◆ serveur_topo_retour

PaCO::PacoTopology_t PaCO_operation::serveur_topo_retour

Definition at line 125 of file PaCO++_operation.h.

Referenced by configureTopo(), init_context(), setClientTopo(), and setServerTopo().

◆ termine

bool PaCO_operation::termine

Definition at line 126 of file PaCO++_operation.h.

Referenced by PaCO_operation().

◆ termine2

bool PaCO_operation::termine2

Definition at line 127 of file PaCO++_operation.h.

Referenced by PaCO_operation().

◆ typeClient

bool PaCO_operation::typeClient

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