PaCO++  0.05
PaCO++.idl
Go to the documentation of this file.
1 // Written by André Ribes 2002
2 
3 #ifndef __PaCO_idl__
4 #define __PaCO_idl__
5 
6 // This file contains all the definitions idl for PaCO++
7 
8 module PaCO
9 {
11  // Distribution Structures
13 
14  // Description of all the data
15  typedef struct PacoGlobalData_s
16  {
17  unsigned long len;
18  unsigned long unit_size;
19  unsigned long cyclic; // how it is distributed : 0:BLOCK, 1:CYCLIC(1), n>=2:CYCLIC(n)
21 
22  // Description of a particular data
23  // a native type is needed for a pointer to data
24  typedef struct PacoLocalData_s
25  {
26  unsigned long rank;
27  unsigned long start; // global offset
28  unsigned long len; // number of element
29  // a native type is needed for a pointer to data
31 
32  // PaCO object Topology
33  typedef struct PacoTopology_s
34  {
35  unsigned long total;
37 
38  // Permits to init the bib
39  typedef struct PacoInitData_s
40  {
44 
45  typedef sequence<PacoLocalData_t> seqLocalData_t;
46 
47  typedef struct DistributedData_s
48  {
49  PacoTopology_t topo; /* dest ou source */
51  seqLocalData_t dist; /* dest ou source */
52  distLoc_t mode; /* library mode */
54 
55  // Connection informations
57  {
58  // version simple a refaire
59  sequence<string> nodes;
60  short request_uid;
62  };
63 
65  // Interfaces
66  interface ParallelKernel
67  {
68  // For clients stubs to call the InterfaceManager
69  // Get connection informations
70  ConnectionInfos getConnectionInfos();
71  };
72 
73  // A PaCO++ interface parallel or object node parallel
75  {
76  // For the servant
77 
78  // Get the logical Rank
79  short getMyRank();
80  // Get the total Number of nodes
81  short getTotalNode();
82  // Get the deploy Rank
83  short getDeployRank();
84 
85  // The InterfaceManager call this method to initialize the InterfaceParallel
86  void init_InterfaceParallel(in short myRank, in short totalNode, in PacoTopology_t topo);
87  //void init_InterfaceParallel(in short totalNode);
88  // To inform the interface manager
89  void deploy(in short rank);
90 
91  // Return interface manager
92  void refReturnObject(in string ref);
93  void connect_return_object(in short client_id);
94 
95  // FOR EXCEPTION HANDLING
96  // NOT COMPLETELY IMPLEMENTED
97  typedef sequence<string> ref;
98  void setRef(in ref ref_nodes);
99  void addException(in short except);
100  };
101 
102  // The interface manager
104  {
105  // Initialize the InterfaceManager
106  // void setConnectionInfos(in ConnectionInfos infos); // deprecated
107  void setTotalNode(in short totalNode);
108  void setTopo(in PacoTopology_t topo);
109  //short getTotalNode();
110  void setNewNode(in string node, in short rank);
111  void setWorkNode(in short totalNode);
112  void setReturn(in string ref);
113  string getReturn();
114  void return_ok(in short client_id);
115  short getClientId();
116  };
117 };
118 
119 #endif
PacoLocalData_t ld
Definition: PaCO++.idl:42
struct PaCO::PacoInitData_s PacoInitData_t
sequence< string > ref
Definition: PaCO++.idl:97
sequence< PacoLocalData_t > seqLocalData_t
Definition: PaCO++.idl:45
struct PaCO::PacoTopology_s PacoTopology_t
struct PaCO::PacoGlobalData_s PacoGlobalData_t
unsigned long len
Definition: PaCO++.idl:17
struct PaCO::PacoLocalData_s PacoLocalData_t
distLoc_t
Definition: PaCO++.idl:12
unsigned long cyclic
Definition: PaCO++.idl:19
struct PaCO::DistributedData_s DistributedData_t
unsigned long unit_size
Definition: PaCO++.idl:18
unsigned long total
Definition: PaCO++.idl:35
PacoTopology_t serveur_topo
Definition: PaCO++.idl:61
PacoGlobalData_t gd
Definition: PaCO++.idl:50
PacoGlobalData_t gd
Definition: PaCO++.idl:41
unsigned long start
Definition: PaCO++.idl:27
seqLocalData_t dist
Definition: PaCO++.idl:51
PacoTopology_t topo
Definition: PaCO++.idl:49
unsigned long rank
Definition: PaCO++.idl:26
Definition: PaCO++.idl:8
sequence< string > nodes
Definition: PaCO++.idl:59
unsigned long len
Definition: PaCO++.idl:28