<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
Peter,
<div><br>
<div><br>
<blockquote type="cite">
<div>Am 07.09.2023 um 21:53 schrieb Peterson, Peter via NeXus <nexus@shadow.nd.rl.ac.uk>:</div>
<br class="Apple-interchange-newline">
<div>
<div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">I am looking to migrate a code from using the nexus API to directly using hdf5. Changing everything all at once is a ton of work. The ideas I’ve had so far for a more gradual migration:<o:p></o:p></div>
<ol start="1" type="1" style="margin-bottom: 0in; margin-top: 0in;">
<li class="MsoListParagraph" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Is there a way to check an NXhandle that it is to an hdf5 file and then use a member of the NXhandle directly with the hdf5 api?<o:p></o:p></li><li class="MsoListParagraph" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Can one open the same file with hdf5 and nexus and carry around both handles at the same time? This would probably require using “reopen” and being careful about access to make it work.<o:p></o:p></li><li class="MsoListParagraph" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Any other ideas?<o:p></o:p></li></ol>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p> </o:p></div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>This may indeed by possible. But I would be cautious to complete operations either in direct H5 or NAPI in sequence </div>
<div>and not in any order. And make sure that you close all HDF5 handles you use in your direct H5 calls before continuing </div>
<div>with NAPI. That is one thing NAPI does for you: keeping track of and closing all the handles required by H5. </div>
<div><br>
</div>
<div>Now, the NXhandle you get from an NXopen() really points to a NexusFile structure as defined in  napi_internal.h.</div>
<div>The first most member of this structure is another handle pointing to a NexusFile5 structure as defined at the top </div>
<div>of napi5.c. And this NexusFile5 structure contains the FID, the HDF5 file ID, you are looking for. You probably want </div>
<div>to modify your NAPI somewhat in order to make yourself a helper function which retrieves the FID for you.  </div>
<div><br>
</div>
<div>Is that enough to get you going?</div>
<div><br>
</div>
<div>Best Regards,</div>
<div><br>
</div>
<div>    Mark Koennecke</div>
<div><br>
</div>
<br>
<blockquote type="cite">
<div>
<div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">P^2<o:p></o:p></div>
</div>
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">NeXus
 mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<a href="mailto:NeXus@nexusformat.org" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">NeXus@nexusformat.org</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<a href="https://lists.nexusformat.org/mailman/listinfo/nexus" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">https://lists.nexusformat.org/mailman/listinfo/nexus</a></div>
</blockquote>
</div>
<br>
</div>
</body>
</html>