Wrapping a C library with its own GC + classes vs refcounted structs

Laeeth Isharc via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jan 12 02:03:08 PST 2015


> Laeeth.
> Thanks for the reply. Yes, this concerns my HDF5 wrapper 
> project; the main concern is not that the memory consumption of 
> course, but rather explicitly controlling lifetimes of the 
> objects (especially objects like files -- so you are can be 
> sure there are no zombie handles floating around).


An easy way is to just use scope(exit) to either close the HDF5 
object directly, or indirectly call destroy on the wrapper.  If 
you want to make it 'idiot proof', maybe ref counting structs 
will get you there (at possible cost of small overhead).  I 
personally don't tend to forget to close a file or dataset; its 
much easier up forget to close a data type or data space 
descriptor.

But struct vs class depends somewhat on how you want to represent 
the object hierarchy in D, no ?

Incidentally there are some nice things one can do using compile 
time code to map D structs to HDF5 types (I have implemented a 
simple version of this in my wrapper).  A bit more work the other 
way around if you don't know what's in the file beforehand.




More information about the Digitalmars-d-learn mailing list