HDF5DotNet and H5PT

Dear all

Is the H5PT API exposed in HDF5DotNet? I've seen a post (http://bit.ly/hvvSsG)
that references a H5PT class but it doesn't look like it's included in the most
recent distribution.

Does anybody have any experience of H5PT and .NET?

Regards

Yes. That would be my message.

I had to write my own wrapper class for H5PT though. At a basic level it's pretty straight forward using the other wrappers as a template. There are difficulties with some dataset functions that should work with the packet table, but don't (ex. adding or accessing attributes and dimension scales (which is a whole 'nother custom wrapper)). To overcome this I open (and close) the packet table as a packet table and as a dataset. I made H5PT more "objecty" than the rest of HDF5DotNet; so I keep the PT & D ids as members of the object and use them as appropriate.

Unfortunately, ITT would frown on my sharing the code.

Scott

···

From: hdf-forum-bounces@hdfgroup.org [mailto:hdf-forum-bounces@hdfgroup.org] On Behalf Of Richard Fowler
Sent: Monday, March 21, 2011 9:03 AM
To: hdf-forum@hdfgroup.org
Subject: [Hdf-forum] HDF5DotNet and H5PT

Dear all

Is the H5PT API exposed in HDF5DotNet? I've seen a post (http://bit.ly/hvvSsG) that references a H5PT class but it doesn't look like it's included in the most recent distribution.

Does anybody have any experience of H5PT and .NET?

Regards

________________________________
This e-mail and any files transmitted with it may be proprietary and are intended solely for the use of the individual or entity to whom they are addressed. If you have received this e-mail in error please notify the sender.
Please note that any views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of ITT Corporation. The recipient should check this e-mail and any attachments for the presence of viruses. ITT accepts no liability for any damage caused by any virus transmitted by this e-mail.

Richard,

I've done some rewriting of the HDF5DotNet libraries for my own use. I've been adding in some of the missing features, etc. I wrote the wrapper for the H5PT API in the same way was the other wrappers (i.e. static methods). Here's the H5PT wrapper code from my project.

You have to put the .cpp and .h files in their respective locations. I updated the .h header file to include a section to comment out the function declarations like they do in the other header files. This header file is for v1.8.6 if that matters to you. You might need to copy out some of the code from the H5Common.h and H5Common.cpp files for the packet table id class. You probably won't be able to drop it directly in because I've done some renaming to make the names of things more .NET convention compliant (e.g. upper case method names).

Let me know if it works out for you. I haven't done any extensive testing with the H5PT API yet, but I may for some streaming if HDF5 is fast enough.

Regards,
Jesse

H5PT_new.zip (9.62 KB)

···

On 3/21/2011 7:02 AM, Richard Fowler wrote:

Dear all

Is the H5PT API exposed in HDF5DotNet? I've seen a post (http://bit.ly/hvvSsG\) that references a H5PT class but it doesn't look like it's included in the most recent distribution.

Does anybody have any experience of H5PT and .NET?

Regards

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

You could ask your boss about contributing the code back to the HD5
project. ITT benefits from your use of an Open Source project.
Contributing code like this back to HDF5 doesn't diminish its value to
ITT.

I would think that corporate management should not view contributing to
FOSS as a problem at this late date; Hewlett Packard, Sun, IBM, and many
others do it all the time. It's not as if ITT's competetive advantage
depends on keeping the HP5T C++ bindings proprietary.

···

On 3/21/11 9:30 AM, "Mitchell, Scott - IS" <Scott.Mitchell@itt.com> wrote:

Yes. That would be my message.

I had to write my own wrapper class for H5PT though. At a basic level
it¹s pretty straight forward using the other wrappers as a template.
There are difficulties
with some dataset functions that should work with the packet table, but
don¹t (ex. adding or accessing attributes and dimension scales (which is
a whole Œnother custom wrapper)). To overcome this I open (and close) the
packet table as a packet table and as
a dataset. I made H5PT more ³objecty² than the rest of HDF5DotNet; so I
keep the PT & D ids as members of the object and use them as appropriate.

Unfortunately, ITT would frown on my sharing the code.

Scott

From: hdf-forum-bounces@hdfgroup.org
[mailto:hdf-forum-bounces@hdfgroup.org]
On Behalf Of Richard Fowler
Sent: Monday, March 21, 2011 9:03 AM
To: hdf-forum@hdfgroup.org
Subject: [Hdf-forum] HDF5DotNet and H5PT

Dear all

Is the H5PT API exposed in HDF5DotNet? I've seen a post
(http://bit.ly/hvvSsG) that references a H5PT class but it doesn't look
like it's included in the most
recent distribution.

Does anybody have any experience of H5PT and .NET?

Regards

________________________________________
This e-mail and any files transmitted with it may be proprietary and are
intended solely for the use of the individual or entity to whom they are
addressed. If you have received this e-mail in error please notify the
sender.
Please note that any views or opinions presented in this e-mail are
solely those of the author and do not necessarily represent those of ITT
Corporation. The recipient should check this e-mail and any attachments
for the presence of viruses. ITT accepts no
liability for any damage caused by any virus transmitted by this e-mail.
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

________________________________
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you.
________________________________

Richard, Jesse,

I've done some rewriting of the HDF5DotNet libraries for my own use. I've
been adding in some of the missing features, etc. I wrote the wrapper for
the H5PT API in the same way was the other wrappers (i.e. static methods).
Here's the H5PT wrapper code from my project.

I've merged Jesses' H5PT binding with the latest HDF5DotNet and Ill push it
to github later for those that want it. I also need H5PT from C#.

Jesse: Did you also modify H5Array.h in order to resolve duplicate linking
between H5D and H5PT?

Best wishes

Martin

Jesse: Did you also modify H5Array.h in order to resolve duplicate linking
between H5D and H5PT?

Ignore that, I've split the definition of H5Array into another file. I'll
put together a few test cases and push it to github this afternoon.

Cheers

Martin

Dear all,

Please find a fork of HDF5DotNet on github at:

https://github.com/galpin/HDF5.NET

Changes include:

* Jesse Lai's H5PT bindings (working with the latest HDF5 [1.8.6]).
* Test cases for H5PT (fixed length packet tables and compound data types).
* A small bug fix (a7e1ab9d).
* Compatibility with 1.8.x deprecated functions (80a2c544d).
* A test suit that fully passes.

Please fork and improve.

I haven't "reversed" Jesse's .NET style for H5PT. Ultimately, I would like
update to entire set of bindings to be consistent with Microsoft.

Best wishes,

Martin

Hello Martin,

I wasn't aware of any public repository for sharing the updates to the HDF5DotNet library. I've already made all .NET style changes to the rest of the classes, as well as added additional functionality where it was missing. That does break compatibility with any of the existing HDF5DotNet code in the wild, but its typically just minor casing issues.

If you like, I can send you the whole updated source code for the project. I haven't really used Git before so I don't know how the fork process works, but I'd be interested in contributing to your project. I've written some minimal unit tests for the various functions. I originally wrote the unit tests using the MS Visual Studio testing framework. I like it because you can easily integrate to databases so you can more easily test various cases for inputs. But then it requires that you have the full Visual Studio to run the tests. I started looking at NUnit for unit tests and have a a couple of basic tests implemented, but it doesn't integrate with databases as easily so I haven't spent any time really doing anything with it.

As an aside, I also have a pure C# version of the HDF5DotNet library where I wrote everything in C# just using PInvoke's to call the HDF5 library. I thought this might be nicer since then it could be possible to build the assembly as AnyCPU and not have to worry about the x86/x64 versions etc. It mostly works, but there are some pretty major issues with pinned data arrays of arbitrary types (i.e. not the basic types such as int, float, double, etc). I'm starting to doubt the usefulness of it now, so I haven't really messed with it in a while.

Jesse

···

On 3/22/2011 8:46 AM, Martin Galpin wrote:

Dear all,

Please find a fork of HDF5DotNet on github at:

https://github.com/galpin/HDF5.NET

Changes include:

* Jesse Lai's H5PT bindings (working with the latest HDF5 [1.8.6]).
* Test cases for H5PT (fixed length packet tables and compound data types).
* A small bug fix (a7e1ab9d).
* Compatibility with 1.8.x deprecated functions (80a2c544d).
* A test suit that fully passes.

Please fork and improve.

I haven't "reversed" Jesse's .NET style for H5PT. Ultimately, I would like update to entire set of bindings to be consistent with Microsoft.

Best wishes,

Martin

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

I wasn't aware of any public repository for sharing the updates to the
HDF5DotNet library.

Me neither. I can't help but think a public repository would have prevented
the three aforementioned and independent H5PT bindings.

If you like, I can send you the whole updated source code for the project.

I haven't really used Git before so I don't know how the fork process works,
but I'd be interested in contributing to your project. I've written some
minimal unit tests for the various functions. I originally wrote the unit
tests using the MS Visual Studio testing framework. I like it because you
can easily integrate to databases so you can more easily test various cases
for inputs. But then it requires that you have the full Visual Studio to
run the tests. I started looking at NUnit for unit tests and have a a
couple of basic tests implemented, but it doesn't integrate with databases
as easily so I haven't spent any time really doing anything with it.

Okay, great. I'd gladly accept it and merge it with the repository. The test
cases currently in HDF5DotNet use a custom harness. I don't see a problem
with using the Microsoft testing framework in the future (unless anyone has
any experience with Mono).

As an aside, I also have a pure C# version of the HDF5DotNet library where
I wrote everything in C# just using PInvoke's to call the HDF5 library. I
thought this might be nicer since then it could be possible to build the
assembly as AnyCPU and not have to worry about the x86/x64 versions etc. It
mostly works, but there are some pretty major issues with pinned data arrays
of arbitrary types (i.e. not the basic types such as int, float, double,
etc). I'm starting to doubt the usefulness of it now, so I haven't really
messed with it in a while.

That would be interesting. We can always maintain a separate branch
alongside the mainline HDF5DotNet.

Feel free to e-mail me a copy and I'll merge it on GitHub.

Obviously, this is an unofficial branch and I'm not sure what the
development schedule for the HDF Group is.

Best wishes,

Martin

Hi,
    Isn't there any support for H5TB api as of now within HDF5.NET ? Kindly let me know if I missed it in the library !

Thanks & Regards

Kailash K
Sogeti Hi-Tech | Bangalore

···

From: hdf-forum-bounces@hdfgroup.org [mailto:hdf-forum-bounces@hdfgroup.org] On Behalf Of Jesse Lai
Sent: Wednesday, March 23, 2011 6:37 AM
To: HDF Users Discussion List
Subject: Re: [Hdf-forum] HDF5DotNet and H5PT

On 3/22/2011 8:46 AM, Martin Galpin wrote:
Dear all,

Please find a fork of HDF5DotNet on github at:

https://github.com/galpin/HDF5.NET

Changes include:
* Jesse Lai's H5PT bindings (working with the latest HDF5 [1.8.6]).
* Test cases for H5PT (fixed length packet tables and compound data types).
* A small bug fix (a7e1ab9d).
* Compatibility with 1.8.x deprecated functions (80a2c544d).
* A test suit that fully passes.

Please fork and improve.

I haven't "reversed" Jesse's .NET style for H5PT. Ultimately, I would like update to entire set of bindings to be consistent with Microsoft.

Best wishes,

Martin

_______________________________________________

Hdf-forum is for HDF software users discussion.

Hdf-forum@hdfgroup.org<mailto:Hdf-forum@hdfgroup.org>

http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
Hello Martin,

I wasn't aware of any public repository for sharing the updates to the HDF5DotNet library. I've already made all .NET style changes to the rest of the classes, as well as added additional functionality where it was missing. That does break compatibility with any of the existing HDF5DotNet code in the wild, but its typically just minor casing issues.

If you like, I can send you the whole updated source code for the project. I haven't really used Git before so I don't know how the fork process works, but I'd be interested in contributing to your project. I've written some minimal unit tests for the various functions. I originally wrote the unit tests using the MS Visual Studio testing framework. I like it because you can easily integrate to databases so you can more easily test various cases for inputs. But then it requires that you have the full Visual Studio to run the tests. I started looking at NUnit for unit tests and have a a couple of basic tests implemented, but it doesn't integrate with databases as easily so I haven't spent any time really doing anything with it.

As an aside, I also have a pure C# version of the HDF5DotNet library where I wrote everything in C# just using PInvoke's to call the HDF5 library. I thought this might be nicer since then it could be possible to build the assembly as AnyCPU and not have to worry about the x86/x64 versions etc. It mostly works, but there are some pretty major issues with pinned data arrays of arbitrary types (i.e. not the basic types such as int, float, double, etc). I'm starting to doubt the usefulness of it now, so I haven't really messed with it in a while.

Jesse

This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is
intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to
read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message
in error, please notify the sender immediately and delete all copies of this message.