Re: WCCP v2 implementation thoughts.

From: Henrik Nordstrom <hno@dont-contact.us>
Date: Thu, 19 Jul 2001 23:41:25 +0200

To me it sounds like you may be looking for the C construct "union".

struct wccc_packet {
        [common data]
        enum wccp_type { WCCP_FOO, WCCP_BAR } type;
        union {
                struct wccp_foo foo;
                struct wccp_bar bar;
        } data;
};

Here "data" is either a wccp_foo or a wccp_bar.

What I don't get is why you have a length parameter in the structs.

--
Henrik
Joe Cooper wrote:
> By this, I mean, I have a struct foo, and a struct bar:
> 
> struct foo {
>         uint16_t type;
>         uint16_t length;
> };
> 
> struct bar{
>         struct foo foostruct;
>         uint32_t length;
> }
> 
> Now, is there a way to (safely) unroll the values of either of these
> structs into a packet buffer using the same function even though their
> contents are dissimilar?  Pointers to documentation would be fine, I'm
> just not seeing any examples in any of my books.
> 
> Feel free to ridicule me for going about it all wrong from the get go.
> (Just offer up tips for the right direction.)
> 
> Thanks!
>                                    --
>                       Joe Cooper <joe@swelltech.com>
>                   Affordable Web Caching Proxy Appliances
>                          http://www.swelltech.com
Received on Thu Jul 19 2001 - 15:42:43 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:07 MST