8 #ifndef COVISE_DMGRPROC_H
9 #define COVISE_DMGRPROC_H
22 int kill(pid_t pid,
int sig);
50 #if !defined(__linux__) && !defined(_WIN32)
51 #define COVISE_Signals
85 return (strcmp(
name, oe.
name) == 0 ? 1 : 0);
89 return (strcmp(
name, oe.
name) >= 0 ? 1 : 0);
93 return (strcmp(
name, oe.
name) <= 0 ? 1 : 0);
97 return (strcmp(
name, oe.
name) > 0 ? 1 : 0);
101 return (strcmp(
name, oe.
name) < 0 ? 1 : 0);
113 void pack_address(
Message *msg);
131 const char *get_hostname(
void);
136 int make_data_conn(
char *new_interface);
137 int complete_data_conn(
Message *msg);
140 return data_conn->recv_msg(msg);
144 return data_conn->send_msg(msg);
151 return conn->send_msg(msg);
167 int make_data_conn(
char *new_interface);
168 int complete_data_conn(
Message *msg);
171 return data_conn->recv_msg(msg);
175 return data_conn->send_msg(msg);
182 class AddressOrderedTree;
183 class SizeOrderedTree;
201 shm->get_shmlist((
int *)ptr);
238 print_comment(__LINE__, __FILE__,
"Anfang von ~DataManagerProcess");
253 for (i = 0; i < no_of_pids; i++)
257 kill(pid_list[i], SIGTERM);
259 HANDLE hPid = OpenProcess(PROCESS_ALL_ACCESS,
TRUE, pid_list[i]);
260 TerminateProcess(hPid, SIGTERM);
271 int DTM_new_desk(
void);
272 int rmv_rdmgr(
char *hostname);
281 void contact_datamanager(
int port,
Host *host);
282 void contact_controller(
int port,
Host *host);
283 void init_object_id();
284 void save_object_id();
285 void start_transfermanager();
286 int get_trfmgr_port();
287 void connect_trfmgr(
Host *
h,
int port);
290 void prepare_for_contact(
int *port);
291 void wait_for_contact();
292 void wait_for_dm_contact();
293 int make_data_connection(
char *
name,
char *new_interface);
294 int complete_data_connection(
Message *msg);
300 int handle_msg(
Message *msg,
bool &localAlloc);
301 void deleteMessageData(
Message *msg);
302 void ask_for_object(
Message *msg);
303 void has_object_changed(
Message *msg);
304 char *get_all_hosts_for_object(
char *);
308 int add_object(
char *
n,
int otype,
int no,
int o,
Connection *
c);
315 int delete_object(
char *
n);
321 int forward_new_part(
Message *);
322 int receive_new_part(
Message *);
332 void send_to_all_connections(
Message *);
333 int shm_free(
int,
int);
340 return shm->get_pointer();
342 void signal_handler(
int signo,
void *);
346 for (i = 0; i < no_of_pids && pid_list[i] != pid; i++)
350 pid_list[i] = pid_list[no_of_pids - 1];
371 void contact_transfermanager(
int port,
Host *host);
372 void contact_datamanager(
int port);
374 void prepare_for_contact(
int *port);
375 void wait_for_tm_contact();
376 int make_data_connection(
char *
name,
char *new_interface);
377 int complete_data_connection(
Message *msg);
382 return shm->get_pointer();
int id
Definition: dmgr.h:161
int operator<=(ObjectEntry &oe)
Definition: dmgr.h:91
DmgrMessage()
Definition: dmgr.h:390
GLsizeiptr size
Definition: khronos-glext.h:6610
int transfermgr
Definition: dmgr.h:129
static class SizeOrderedTree * free_size_list
Definition: dmgr.h:190
GLintptr offset
Definition: khronos-glext.h:6611
ObjectEntry()
Definition: dmgr.h:72
Definition: covise_list.h:53
Definition: covise_connect.h:115
List< AccessEntry > * access
Definition: dmgr.h:69
Definition: covise_process.h:170
Definition: covise_msg.h:87
Definition: covise_shm.h:311
int operator>(ObjectEntry &oe)
Definition: dmgr.h:95
bool is_connected()
Definition: dmgr.h:275
int recv_data_msg(Message *msg)
Definition: dmgr.h:138
GLboolean GLboolean GLboolean GLboolean a
Definition: khronos-glext.h:6895
Connection * get_conn(void)
Definition: dmgr.h:132
access_type
Definition: covise_shm.h:81
void set_dmgr(DMEntry *dm)
Definition: dmgr.h:108
Definition: covise_shm.h:379
void remove_pid(int pid)
Definition: dmgr.h:343
int operator==(ObjectEntry &oe)
Definition: dmgr.h:83
int operator<(ObjectEntry &oe)
Definition: dmgr.h:99
Definition: covise_avl_tree.h:46
GLfloat GLfloat GLfloat GLfloat h
Definition: khronos-glext.h:8441
coShmAlloc * shm
Definition: dmgr.h:221
void print_shared_memory_statistics()
Definition: dmgr.h:334
unsigned int shmSizeType
Definition: covise_shm.h:202
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:222
void handle_shm_msg(Message *)
Definition: dmgr.h:379
int shm_seq_no
Definition: covise_shm.h:347
Connection * conn
Definition: dmgr.h:163
int id
Definition: dmgr.h:124
int send_data_msg(const Message *msg)
Definition: dmgr.h:142
GLuint const GLchar * name
Definition: khronos-glext.h:6722
const GLubyte * c
Definition: khronos-glext.h:9864
int send_data_msg(const Message *msg)
Definition: dmgr.h:173
Definition: covise_host.h:18
void clean_all(int arg)
Definition: dmgr_process.cpp:327
void contact_controller(int, Host *)
Definition: dmgr.h:373
void * get_shared_memory_address()
Definition: dmgr.h:380
List< TMEntry > * transfer_mgrs
Definition: dmgr.h:363
Connection * conn
Definition: dmgr.h:126
Definition: coFileUtil.cpp:32
Connection * owner
Definition: dmgr.h:68
static class SharedMemory ** shm_array
Definition: covise_shm.h:212
static int global_seq_no
Definition: covise_shm.h:214
DataManagerConnection * datamanager
Definition: dmgr.h:361
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:362
void get_shmlist(char *ptr)
Definition: dmgr.h:199
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:128
Definition: covise_connect.h:200
int no_of_pids
Definition: dmgr.h:225
int offset
Definition: dmgr.h:66
Connection * data_conn
Definition: dmgr.h:164
void print()
Definition: dmgr.h:179
Definition: covise_appproc.h:19
int send_msg(Message *msg)
Definition: dmgr.h:149
bool is_bad_
Definition: dmgr.h:226
Connection * data_conn
Definition: dmgr.h:127
int ObjectEntry_compare(ObjectEntry *a, ObjectEntry *b)
Definition: dmgr_process.cpp:304
int operator>=(ObjectEntry &oe)
Definition: dmgr.h:87
DMEntry * dmgr
Definition: dmgr.h:70
Host * host
Definition: dmgr.h:125
char * name
Definition: dmgr.h:63
shmSizeType offset
Definition: covise_shm.h:348
void * get_shared_memory_address()
Definition: dmgr.h:338
pid_t * pid_list
Definition: dmgr.h:224
int version
Definition: dmgr.h:64
Definition: covise_avl_tree.h:43
int shm_seq_no
Definition: dmgr.h:65
int recv_data_msg(Message *msg)
Definition: dmgr.h:169
void pack_and_send_object(Message *msg, DataManagerProcess *dm)
Definition: dmgr_process.cpp:2056
Host * host
Definition: dmgr.h:162
ServerConnection * tmpconn
Definition: dmgr.h:220
List< DMEntry > * data_mgrs
Definition: dmgr.h:223
int type
Definition: dmgr.h:67
Definition: dmgr_mem_avltrees.h:372
static class AddressOrderedTree * used_list
Definition: dmgr.h:188
ServerConnection * tmpconn
Definition: dmgr.h:364
GLdouble n
Definition: khronos-glext.h:8447
~coShmAlloc()
Definition: dmgr.h:194
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:165
static int max_t
Definition: dmgr.h:227
#define DMGREXPORT
Definition: coExport.h:313
static class AddressOrderedTree * free_list
Definition: dmgr.h:189
void collect_garbage()
Definition: dmgr.h:209
void print_comment(int line, const char *filename, const char *fmt,...)
Definition: coLog.cpp:25
ServerConnection * transfermanager
Definition: dmgr.h:219
Definition: covise_connect.h:269
GLenum type
Definition: khronos-glext.h:6279
~DataManagerProcess()
Definition: dmgr.h:232
void print()
Definition: dmgr.h:148
ShmAccess * shm
Definition: dmgr.h:365
void free(coShmPtr *adr)
Definition: dmgr.h:203
class DataManagerProcess * dmgrproc
Definition: dmgr.h:187
Definition: dmgr_mem_avltrees.h:220
GLuint GLint GLboolean GLint GLenum access
Definition: khronos-glext.h:8584
Definition: message.h:111