Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

group_admin Class Reference

#include <total_order_channel.h>

List of all members.

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]


Detailed Description

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 }

Constructor & Destructor Documentation

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 }

Member Function Documentation

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         }

Member Data Documentation

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.


The documentation for this class was generated from the following files:
Generated at Mon Mar 1 18:05:55 2004 for Groupware by doxygen 1.1.1 written by Dimitri van Heesch, © 1997-2000