[Spread-cvs] cvs commit: spread/daemon sp_func.h sp.c user.c
Daniel Rall
dlr at finemaltcoding.com
Tue Sep 17 14:36:52 EDT 2002
With (a comprehensive set of) accessors available, it might make sense
to hide the structure definition in either a "private" include file,
or if possible, in the .c file where it's used. Just my $.02.
- Dan
jonathan at spread.org writes:
> jonathan 02/09/17 04:48:07
>
> Modified: daemon sp_func.h sp.c user.c
> Log:
> Add Cristina's membership body accessor functions to locate various fields
> in the body of a membership message.
>
> int SP_get_gid_offset_memb_mess();
> int SP_get_num_vs_offset_memb_mess();
> int SP_get_vs_set_offset_memb_mess();
>
> All applications should start using these so they do not break when we
> change the membership body layout.
>
> Revision Changes Path
> 1.2 +5 -0 spread/daemon/sp_func.h
>
> Index: sp_func.h
> ===================================================================
> RCS file: /storage/cvsroot/spread/daemon/sp_func.h,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- sp_func.h 21 Aug 2001 14:28:21 -0000 1.1
> +++ sp_func.h 17 Sep 2002 04:48:07 -0000 1.2
> @@ -88,6 +88,11 @@
> int16 *mess_type, int *endian_mismatch,
> scatter *scat_mess );
>
> +/* returns offset in memb. message of gid (group id), num_vs and vs_set */
> +int SP_get_gid_offset_memb_mess();
> +int SP_get_num_vs_offset_memb_mess();
> +int SP_get_vs_set_offset_memb_mess();
> +
> int SP_poll( mailbox mbox );
>
> int SP_equal_group_ids( group_id g1, group_id g2 );
>
>
>
> 1.5 +15 -0 spread/daemon/sp.c
>
> Index: sp.c
> ===================================================================
> RCS file: /storage/cvsroot/spread/daemon/sp.c,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- sp.c 16 Sep 2002 16:59:06 -0000 1.4
> +++ sp.c 17 Sep 2002 04:48:07 -0000 1.5
> @@ -1503,6 +1503,21 @@
> else return( 0 );
> }
>
> +int SP_get_gid_offset_memb_mess()
> +{
> + return 0;
> +}
> +
> +int SP_get_num_vs_offset_memb_mess()
> +{
> + return sizeof(group_id);
> +}
> +
> +int SP_get_vs_set_offset_memb_mess()
> +{
> + return sizeof(group_id) + sizeof(int32);
> +}
> +
> int SP_query_groups( mailbox mbox, int max_groups, char *groups[MAX_GROUP_NAME] )
> {
> return( -1 );
>
>
>
> 1.4 +3 -3 spread/daemon/user.c
>
> Index: user.c
> ===================================================================
> RCS file: /storage/cvsroot/spread/daemon/user.c,v
> retrieving revision 1.3
> retrieving revision 1.4
> diff -u -r1.3 -r1.4
> --- user.c 26 Aug 2002 22:57:41 -0000 1.3
> +++ user.c 17 Sep 2002 04:48:07 -0000 1.4
> @@ -430,11 +430,11 @@
> {
> if ( Is_reg_memb_mess( service_type ) )
> {
> - num_bytes = 0;
> + num_bytes = SP_get_gid_offset_memb_mess();
> grp_id = (group_id *)&mess[num_bytes];
> - num_bytes += sizeof( group_id );
> + num_bytes = SP_get_num_vs_offset_memb_mess();
> num_vs = (int32 *)&mess[num_bytes];
> - num_bytes += sizeof( int32 );
> + num_bytes = SP_get_vs_set_offset_memb_mess();
> vs_members = &mess[num_bytes];
> printf("Received REGULAR membership for group %s with %d members, where I am member %d:\n",
> sender, num_groups, mess_type );
>
>
>
>
> _______________________________________________
> Spread-cvs mailing list
> Spread-cvs at lists.spread.org
> http://lists.spread.org/mailman/listinfo/spread-cvs
>
--
Daniel Rall <dlr at finemaltcoding.com>
More information about the Spread-cvs
mailing list