00001 #ifndef Se_Ipc_Included
00002 #define Se_Ipc_Included
00003
00004 #include <sys/types.h>
00005 #include <unistd.h>
00006 #include <sys/msg.h>
00007 #include <sys/ipc.h>
00008 #include <sys/stat.h>
00009 #include <sys/fcntl.h>
00010 #include <iostream>
00011
00012 #include "se_string.h"
00013
00014 namespace Se{
00015
00016 class Ipc{
00017 public:
00018 static const int Max_Msg_Size=4080;
00019
00020 struct
00021 msg_buf{
00022 long mtype;
00023 char mtext[Max_Msg_Size];
00024 };
00025
00026 static int exec(String the_executable,
00027 String the_directory,
00028 char const *argv);
00029 static int create_msq(int key);
00030 static int open_msq(int key);
00031 static void rm_msq(int key);
00032 static void send_msg(int id,struct msg_buf *buf,int size);
00033 static int rec_mesg(int id,int size,struct msg_buf *msgb);
00034 static void put_env(String name,int value);
00035 static int get_env(String name);
00036 static void print_env();
00037 };
00038
00039 }
00040 #endif