Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #26595

Re: packed structs

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c
Subject Re: packed structs
Date 2012-09-23 10:33 +1200
Message-ID <ac6sm5Fbr7hU1@mid.individual.net> (permalink)
References <k3j5or$q37$1@reader1.panix.com> <k3jaun$8al$1@dont-email.me> <e5a6fdcf-0343-4ea9-bfa8-5464c8d355a4@ib4g2000vbb.googlegroups.com> <k3jua2$l2e$1@reader1.panix.com>

Show all headers | View raw


On 09/22/12 08:53 PM, JohnF wrote:
> Nick Keighley<nick_keighley_nospam@hotmail.com>  wrote:
>> Eric Sosman<esos...@ieee-dot-org.invalid>  wrote:
>>
>> serializing structs
>>
>>> One way is the function-per-struct-type approach, and
>>> although it may be "b..o..r..i..n..g" it has advantages
>>> that should not be dismissed lightly. ?Consider that there
>>> are (most likely) only a handful of structs and hence only
>>> a handful of functions; writing them won't take enough
>>> time to b..o..r..e anyone except an ADHD sufferer.
>>
>> I've dealt with cases where there were considerably more than a
>> "handful"- communication protocol.
>>
>> Since I have a low b..o..r..e..d..o..m threshold I resorted to code
>> generation. The protocol was defined by tables in a PDF document (ug).
>> Copy-paste turned them into text and perl turned them into something
>> easily processed. Most of the code was generated by people who didn't
>> appear to mind writing tons of tedious boring repetitive code. There
>> was a bit-banging library that did most of the heavy lifting.
>
> What do you think of my my smemf()-type of solution in other post?
> Not necessarily that particular solution, but the point being that
> this has got to be a pretty frequently occurring problem, and the
> only available solutions, like yours above, seem to be pretty
> awfully ugly. But it ain't rocket science -- there ought to be
> a way to deal with these situations elegantly. smemf() solves it
> with>>zero<<  structs.

having worked on numerous on the wire protocols, I've encountered this 
problem many times.  The most practical solution for all but the most 
trivial cases is to code generate the formatting code.  The source for 
the code generator can either be C (or C++ if inheritance helps) code or 
some other easy to parse format.  This is one case where I prefer XML 
(often in the form of an OpenOffice document) as the "other easy to 
parse format".

-- 
Ian Collins

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 01:54 +0000
  Re: packed structs Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-21 23:22 -0400
    Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 06:37 +0000
      Re: packed structs "BartC" <bc@freeuk.com> - 2012-09-22 13:47 +0100
        Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-22 14:00 +0100
        Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 15:42 +0000
      Re: packed structs Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-22 09:13 -0400
      Re: packed structs Johann Klammer <klammerj@NOSPAM.a1.net> - 2012-09-23 03:10 +0200
        Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-23 02:10 +0000
      Re: packed structs Stephen Sprunk <stephen@sprunk.org> - 2012-09-23 11:44 -0500
        Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-23 23:23 +0000
          Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-24 01:59 +0100
            Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 02:54 +0000
              Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-24 04:38 +0100
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 04:07 +0000
                Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-24 12:16 +0100
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 11:45 +0000
              Re: packed structs "BartC" <bc@freeuk.com> - 2012-09-24 10:18 +0100
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 11:04 +0000
                Re: packed structs Stephen Sprunk <stephen@sprunk.org> - 2012-09-30 14:21 -0500
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-10-01 07:34 +0000
          Re: packed structs Stephen Sprunk <stephen@sprunk.org> - 2012-09-30 13:52 -0500
    Re: packed structs Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-09-22 01:31 -0700
      Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 08:53 +0000
        Re: packed structs Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-09-22 14:17 +0000
          Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 15:33 +0000
            Re: packed structs Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-09-22 20:43 +0000
            Re: packed structs "BartC" <bc@freeuk.com> - 2012-09-22 22:52 +0100
          Re: packed structs Keith Thompson <kst-u@mib.org> - 2012-09-22 13:47 -0700
            Re: packed structs JohnF <john@forkosh.com.com> - 2012-09-23 00:19 +0000
              Re: packed structs Ian Collins <ian-news@hotmail.com> - 2012-09-23 13:32 +1200
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-23 02:16 +0000
        Re: packed structs Ian Collins <ian-news@hotmail.com> - 2012-09-23 10:33 +1200
          Re: packed structs Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-09-23 01:38 -0700
  Re: packed structs The Great Firewall of China Blue <chine.bleu@yahoo.com> - 2012-09-21 21:29 -0700

csiph-web