#include <total_order_channel.h>
Public Methods | |||
group_admin () | |||
int | init_members_list (char * file) | ||
int | add_member ( int , int , int ) | ||
int | del_member ( int ) | ||
int | host_number (int ) | ||
int | port_number (int ) | ||
Public Attributes | |||
int | groupsize | ||
struct member | members_list [MAX_MEMBER] |
Definition at line 22 of file total_order_channel.h.
00022 { 00023 00024 /********************************************************************/ 00025 00026 public: 00027 group_admin() ; 00028 00029 int init_members_list(char * file) ; 00030 00031 int add_member( int , int , int ) ; 00032 00033 int del_member( int ) ; 00034 00035 int host_number(int ) ; 00036 00037 int port_number(int ); 00038 00039 int groupsize; 00040 00041 struct member members_list[MAX_MEMBER]; 00042 00043 #define MEMBSZ sizeof(struct member) 00044 00045 }
group_admin::group_admin () |
Definition at line 17 of file no_prop_channel.cpp.
00017 { 00018 00019 groupsize = 0; 00020 00021 for (int i = 0; i< MAX_MEMBER ; i++) 00022 00023 members_list[i].ident = UNDEF ; 00024 }
int group_admin::add_member (int ident, int host, int) |
Definition at line 68 of file no_prop_channel.cpp.
00068 { 00069 00070 for( int i =0; i < MAX_MEMBER ; i++ ) { 00071 00072 if (members_list[i].ident == -1 ) { 00073 00074 members_list[i].ident = ident; 00075 00076 members_list[i].nodeid = host; 00077 00078 members_list[i].port = port; 00079 00080 groupsize ++; 00081 00082 return(0); 00083 } 00084 } 00085 return(-1); 00086 }
int group_admin::del_member (int ident) |
Definition at line 91 of file no_prop_channel.cpp.
00091 { 00092 00093 for( int i =0; i < MAX_MEMBER ; i++ ) { 00094 00095 if (members_list[i].ident == ident ) { 00096 00097 members_list[i].ident = -1; 00098 00099 groupsize --; 00100 00101 return(0); 00102 } 00103 } 00104 return(-1); 00105 }
int group_admin::host_number (int ident) |
Definition at line 112 of file no_prop_channel.cpp.
00112 { 00113 00114 int li=0, 00115 reponse; 00116 00117 while( (ident != members_list[li].ident) && (li< MAX_MEMBER) ) 00118 li++; 00119 00120 if (li == MAX_MEMBER) { 00121 return(0); 00122 } else { 00123 reponse=members_list[li].nodeid; 00124 return(reponse); 00125 } 00126 }
int group_admin::init_members_list (char * file) |
Definition at line 28 of file no_prop_channel.cpp.
00028 { 00029 00030 //initialise le tableau members_address en lisant les valeurs ds le fichier 00031 //passe en parametre 00032 //si le fichier ne peut etre ouvert, retourne -1, 0 sinon 00033 00034 FILE * f; 00035 int ident,port; 00036 char ip[15]; 00037 u_long add; 00038 int ret, nb = 0; 00039 00040 if( (f=fopen(file, "r"))==NULL ) 00041 return(-1); 00042 00043 ret = fscanf(f,"%d %s %d",&ident,&ip,&port); 00044 00045 while( ret != EOF) { 00046 00047 members_list[ident].ident = ident; 00048 add =inet_addr(ip); 00049 members_list[ident].nodeid = (int) add ; 00050 members_list[ident].port = port; 00051 nb ++; 00052 ret = fscanf(f,"%d %s %d",&ident,&ip,&port); 00053 00054 } 00055 fclose (f); 00056 groupsize = nb; 00057 00058 cout << " group_admin sz = " << groupsize << endl ; 00059 00060 return(0); 00061 00062 }
int group_admin::port_number (int ident) |
Definition at line 130 of file no_prop_channel.cpp.
00130 { 00131 00132 00133 int li=0, 00134 reponse; 00135 00136 while( (ident != members_list[li].ident) && (li<MAX_MEMBER) ) 00137 li++; 00138 00139 if (li == MAX_MEMBER ) { 00140 return(0); 00141 } else { 00142 reponse=members_list[li].port; 00143 return(reponse); 00144 } 00145 }
int group_admin::groupsize |
Definition at line 39 of file total_order_channel.h.
struct member group_admin::members_list[MAX_MEMBER] |
Definition at line 41 of file total_order_channel.h.