8#ifndef COVISE_DMGRPROC_H
9#define COVISE_DMGRPROC_H
24int kill(pid_t pid,
int sig);
52#if !defined(__linux__) && !defined(_WIN32)
87 return (strcmp(
name.data(), oe.
name.
data()) == 0 ? 1 : 0);
91 return (strcmp(
name.data(), oe.
name.
data()) >= 0 ? 1 : 0);
95 return (strcmp(
name.data(), oe.
name.
data()) <= 0 ? 1 : 0);
99 return (strcmp(
name.data(), oe.
name.
data()) > 0 ? 1 : 0);
103 return (strcmp(
name.data(), oe.
name.
data()) < 0 ? 1 : 0);
115 void pack_address(
Message *msg);
133 const char *get_hostname(
void);
138 int make_data_conn(
char *new_interface);
139 int complete_data_conn(
Message *msg);
184class AddressOrderedTree;
185class SizeOrderedTree;
203 shm->get_shmlist((
int *)ptr);
239 print_comment(__LINE__, __FILE__,
"Anfang von ~DataManagerProcess");
254 for (i = 0; i < no_of_pids; i++)
258 kill(pid_list[i], SIGTERM);
260 HANDLE hPid = OpenProcess(PROCESS_ALL_ACCESS,
TRUE, pid_list[i]);
261 TerminateProcess(hPid, SIGTERM);
272 int DTM_new_desk(
void);
273 int rmv_rdmgr(
char *hostname);
278 return controller !=
nullptr;
282 void contact_datamanager(
int port,
Host &host);
283 void contact_controller(
int port,
Host *host);
284 void init_object_id();
285 void save_object_id();
286 void start_transfermanager();
291 void wait_for_dm_contact();
292 int make_data_connection(
char *
name,
char *new_interface);
293 int complete_data_connection(
Message *msg);
300 void ask_for_object(
Message *msg);
301 void has_object_changed(
Message *msg);
319 int forward_new_part(
Message *);
320 int receive_new_part(
Message *);
330 void send_to_all_connections(
Message *);
331 int shm_free(
int,
int);
344 for (i = 0; i < no_of_pids && pid_list[i] != pid; i++)
348 pid_list[i] = pid_list[no_of_pids - 1];
#define DMGREXPORT
Definition: coExport.h:325
@ TRUE
Definition: coFileUtil.cpp:32
GLdouble n
Definition: khronos-glext.h:8447
const GLubyte * c
Definition: khronos-glext.h:9864
GLsizeiptr size
Definition: khronos-glext.h:6610
GLuint GLint GLboolean GLint GLenum access
Definition: khronos-glext.h:8584
GLuint const GLchar * name
Definition: khronos-glext.h:6722
GLintptr offset
Definition: khronos-glext.h:6611
GLboolean GLboolean GLboolean GLboolean a
Definition: khronos-glext.h:6895
GLenum type
Definition: khronos-glext.h:6279
GLfloat GLfloat GLfloat GLfloat h
Definition: khronos-glext.h:8441
list of all chemical elements
Definition: coConfig.h:27
void clean_all(int arg)
Definition: dmgr_process.cpp:312
int ObjectEntry_compare(ObjectEntry *a, ObjectEntry *b)
Definition: dmgr_process.cpp:289
access_type
Definition: covise_shm.h:82
unsigned int shmSizeType
Definition: covise_shm.h:202
void print_comment(int line, const char *filename, const char *fmt,...)
Definition: coLog.cpp:25
std::enable_if< I==sizeof...(Tp), void >::type print(Stream &s, const std::tuple< Tp... > &t)
Definition: tokenbuffer_util.h:68
Definition: covise_list.h:78
Definition: covise_connect.h:122
bool sendMessage(int senderId, int senderType, const Message *msg) const
Definition: covise_connect.cpp:944
virtual int recv_msg(Message *msg, char *ip=nullptr) const
Definition: covise_connect.cpp:1029
Definition: covise_connect.h:220
Definition: covise_connect.h:294
Definition: covise_host.h:19
Definition: dataHandle.h:18
const char * data() const
Definition: dataHandle.cpp:52
Definition: covise_avl_tree.h:119
Definition: covise_avl_tree.h:47
int operator<(ObjectEntry &oe)
Definition: dmgr.h:101
int operator>=(ObjectEntry &oe)
Definition: dmgr.h:89
int offset
Definition: dmgr.h:67
int operator==(ObjectEntry &oe)
Definition: dmgr.h:85
int operator<=(ObjectEntry &oe)
Definition: dmgr.h:93
List< AccessEntry > * access
Definition: dmgr.h:70
void pack_and_send_object(Message *msg, DataManagerProcess *dm)
Definition: dmgr_process.cpp:1973
access_type get_access(const Connection *c)
DataHandle name
Definition: dmgr.h:64
const Connection * owner
Definition: dmgr.h:69
DMEntry * dmgr
Definition: dmgr.h:71
int type
Definition: dmgr.h:68
int operator>(ObjectEntry &oe)
Definition: dmgr.h:97
int shm_seq_no
Definition: dmgr.h:66
void set_dmgr(DMEntry *dm)
Definition: dmgr.h:110
ObjectEntry()
Definition: dmgr.h:73
int version
Definition: dmgr.h:65
int recv_data_msg(Message *msg)
Definition: dmgr.h:140
int transfermgr
Definition: dmgr.h:131
int id
Definition: dmgr.h:126
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:130
int send_data_msg(const Message *msg)
Definition: dmgr.h:144
int send_msg(Message *msg)
Definition: dmgr.h:151
const Connection * get_conn(void)
Definition: dmgr.h:134
Host * host
Definition: dmgr.h:127
void print()
Definition: dmgr.h:150
Host * host
Definition: dmgr.h:164
int make_data_conn(char *new_interface)
int send_data_msg(const Message *msg)
Definition: dmgr.h:175
void print()
Definition: dmgr.h:181
int id
Definition: dmgr.h:163
int complete_data_conn(Message *msg)
TMEntry(int i, char *h, Connection *c)
int recv_data_msg(Message *msg)
Definition: dmgr.h:171
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:167
class DataManagerProcess * dmgrproc
Definition: dmgr.h:189
static class SizeOrderedTree * free_size_list
Definition: dmgr.h:192
void get_shmlist(char *ptr)
Definition: dmgr.h:201
void collect_garbage()
Definition: dmgr.h:211
static class AddressOrderedTree * used_list
Definition: dmgr.h:190
void free(coShmPtr *adr)
Definition: dmgr.h:205
void print()
Definition: dmgr_shm.cpp:144
~coShmAlloc()
Definition: dmgr.h:196
static class AddressOrderedTree * free_list
Definition: dmgr.h:191
void connect_trfmgr(Host *h, int port)
bool is_connected()
Definition: dmgr.h:276
void print_shared_memory_statistics()
Definition: dmgr.h:332
~DataManagerProcess()
Definition: dmgr.h:233
void * get_shared_memory_address()
Definition: dmgr.h:336
void remove_pid(int pid)
Definition: dmgr.h:341
List< DMEntry > * data_mgrs
Definition: dmgr.h:225
void signal_handler(int signo, void *)
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:224
static int max_t
Definition: dmgr.h:228
int no_of_pids
Definition: dmgr.h:227
pid_t * pid_list
Definition: dmgr.h:226
coShmAlloc * shm
Definition: dmgr.h:223
DataManagerConnection * datamanager
Definition: dmgr.h:359
ServerConnection * tmpconn
Definition: dmgr.h:362
void prepare_for_contact(int *port)
int complete_data_connection(Message *msg)
int handle_msg(Message *msg)
ShmAccess * shm
Definition: dmgr.h:363
List< TMEntry > * transfer_mgrs
Definition: dmgr.h:361
TransferManagerProcess(char *n, int arc, char *arv[])
void wait_for_tm_contact()
void contact_transfermanager(int port, Host *host)
void contact_datamanager(int port)
void handle_shm_msg(Message *)
Definition: dmgr.h:377
void * get_shared_memory_address()
Definition: dmgr.h:378
void contact_controller(int, Host *)
Definition: dmgr.h:371
AVLTree< ObjectEntry > * objects
Definition: dmgr.h:360
int make_data_connection(char *name, char *new_interface)
DmgrMessage()
Definition: dmgr.h:388
Definition: dmgr_mem_avltrees.h:221
Definition: dmgr_mem_avltrees.h:373
Definition: covise_appproc.h:20
Definition: covise_msg.h:88
Definition: covise_process.h:171
static class SharedMemory ** shm_array
Definition: covise_shm.h:212
static int global_seq_no
Definition: covise_shm.h:214
Definition: covise_shm.h:312
void * get_pointer(int no)
Definition: covise_shm.h:322
int shm_seq_no
Definition: covise_shm.h:347
shmSizeType offset
Definition: covise_shm.h:348
Definition: covise_shm.h:380