floodlight/loxigen — pull request #342 by rlane (2014-10-28 23:25:21+00:00)
Title: loci: begin removing inheritance unions

Reviewer: @wilmo119

Inheritance unions are one of the nastier parts of LOCI. They're the reason you need use use `obj.header` and (for example) `obj.output` when iterating over TLV lists. Internally, they require a bunch of special case code to handle the name collisions with the normal per-class typedefs. They're also completely useless since every member of the union has the same type.

This pull request modifies the LOCI API in a backwards-compatible way. Anywhere you'd previously pass a pointer to an inheritance union, now you can pass a pointer to of_object_t instead. Once all callers have been converted over to the new API I will remove inheritance unions from LOCI.