1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>HDF5: Object Copy Properties</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="hdf5doxy.css" rel="stylesheet" type="text/css">
<!-- <link href="hdf5doxy.css" rel="stylesheet" type="text/css"/>
-->
<script type="text/javascript" src="hdf5_navtree_hacks.js"></script>
</head>
<body>
<div style="background:#FFDDDD;font-size:120%;text-align:center;margin:0;padding:5px">Please, help us to better serve our user community by answering the following short survey: <a href="https://www.hdfgroup.org/website-survey/">https://www.hdfgroup.org/website-survey/</a></div>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="HDFG-logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname"><a href="https://www.hdfgroup.org">HDF5</a>
 <span id="projectnumber">1.15.0</span>
</div>
<div id="projectbrief">API Reference</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group___o_c_p_y_p_l.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Object Copy Properties<div class="ingroups"><a class="el" href="group___h5_p.html">Property Lists (H5P)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p><a class="anchor" id="table_ocpypl_id"></a>
<table class="doxtable">
<caption border="1" style="background-color:whitesmoke;">Object copy property list functions (H5P)</caption>
<tr>
<th>Function </th><th>Purpose </th></tr>
<tr>
<td><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path</a> </td><td>Adds a path to the list of paths that will be searched in the destination file for a matching committed datatype. </td></tr>
<tr>
<td><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths</a> </td><td>Clears the list of paths stored in the object copy property list. </td></tr>
<tr>
<td><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object</a>/<a class="el" href="group___o_c_p_y_p_l.html#gad81b509481ba53a1ef1ba3c7083fc295" title="Retrieves the properties to be used when an object is copied.">H5Pget_copy_object</a> </td><td>Sets/gets the properties to be used when an object is copied. </td></tr>
<tr>
<td><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb</a>/<a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb</a> </td><td>Sets/gets the callback function that <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will invoke before searching for a matching committed datatype. </td></tr>
</table>
</p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for Object Copy Properties:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___o_c_p_y_p_l.png" border="0" usemap="#agroup______o__c__p__y__p__l" alt=""/></div>
<map name="agroup______o__c__p__y__p__l" id="agroup______o__c__p__y__p__l">
<area shape="rect" title=" " alt="" coords="204,5,375,31"/>
<area shape="rect" href="group___h5_p.html" title=" " alt="" coords="5,5,156,31"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gab89c9debe50afca848151ff046afc82f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f">H5Padd_merge_committed_dtype_path</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> plist_id, const char *path)</td></tr>
<tr class="memdesc:gab89c9debe50afca848151ff046afc82f"><td class="mdescLeft"> </td><td class="mdescRight">Adds a path to the list of paths that will be searched in the destination file for a matching committed datatype. <a href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f">More...</a><br /></td></tr>
<tr class="separator:gab89c9debe50afca848151ff046afc82f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4b8d6496ac56b167dba16729a8bd7adf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf">H5Pfree_merge_committed_dtype_paths</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> plist_id)</td></tr>
<tr class="memdesc:ga4b8d6496ac56b167dba16729a8bd7adf"><td class="mdescLeft"> </td><td class="mdescRight">Clears the list of paths stored in the object copy property list. <a href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf">More...</a><br /></td></tr>
<tr class="separator:ga4b8d6496ac56b167dba16729a8bd7adf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad81b509481ba53a1ef1ba3c7083fc295"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___o_c_p_y_p_l.html#gad81b509481ba53a1ef1ba3c7083fc295">H5Pget_copy_object</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> plist_id, unsigned *copy_options)</td></tr>
<tr class="memdesc:gad81b509481ba53a1ef1ba3c7083fc295"><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the properties to be used when an object is copied. <a href="group___o_c_p_y_p_l.html#gad81b509481ba53a1ef1ba3c7083fc295">More...</a><br /></td></tr>
<tr class="separator:gad81b509481ba53a1ef1ba3c7083fc295"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5d7b82394d37bda28769a0435300d396"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396">H5Pget_mcdt_search_cb</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> plist_id, <a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> *func, void **op_data)</td></tr>
<tr class="memdesc:ga5d7b82394d37bda28769a0435300d396"><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the callback function from the specified object copy property list. <a href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396">More...</a><br /></td></tr>
<tr class="separator:ga5d7b82394d37bda28769a0435300d396"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8819261e0b4663827212892e10dfc8a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6">H5Pset_copy_object</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> plist_id, unsigned copy_options)</td></tr>
<tr class="memdesc:ga8819261e0b4663827212892e10dfc8a6"><td class="mdescLeft"> </td><td class="mdescRight">Sets properties to be used when an object is copied. <a href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6">More...</a><br /></td></tr>
<tr class="separator:ga8819261e0b4663827212892e10dfc8a6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9e0448885990a1b9ebd4493b7604f0c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1">H5Pset_mcdt_search_cb</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> plist_id, <a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> func, void *op_data)</td></tr>
<tr class="memdesc:ga9e0448885990a1b9ebd4493b7604f0c1"><td class="mdescLeft"> </td><td class="mdescRight">Sets the callback function that <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will invoke before searching the entire destination file for a matching committed datatype. <a href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1">More...</a><br /></td></tr>
<tr class="separator:ga9e0448885990a1b9ebd4493b7604f0c1"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="gab89c9debe50afca848151ff046afc82f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab89c9debe50afca848151ff046afc82f">◆ </a></span>H5Padd_merge_committed_dtype_path()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Padd_merge_committed_dtype_path </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td>
<td class="paramname"><em>plist_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>path</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a path to the list of paths that will be searched in the destination file for a matching committed datatype. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist_id</td><td>Object copy property list identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path to be added</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl>
<p><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> adds a path, <code>path</code>, which points to a committed datatype, to the current list of suggested paths stored in the object copy property list <code>plist_id</code>. The search as described in the next paragraph is effective only if the <a class="el" href="_h5_opublic_8h.html#a11355b69cd246ae15e7d4c53cd210bd8">H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG</a> is enabled in the object copy property list via <a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a>.</p>
<p>When copying a committed datatype, a dataset with a committed datatype, or an object with an attribute of a committed datatype, the default behavior of <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> is to search for a matching committed datatype: </p><ol>
<li>
First search the list of suggested paths in the object copy property list. </li>
<li>
Then, if no match has been found, search all the committed datatypes in the destination file. </li>
</ol>
<p>The default Step 2 in this search process can be changed by setting a callback function (see <a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a>).</p>
<p>Two datatypes are determined equal if their descriptions are identical, in a manner similar to <a class="el" href="group___h5_t.html#gaa92250f289b557b63cba974defa20b0f" title="Determines whether two datatype identifiers refer to the same datatype.">H5Tequal()</a>. If either committed datatype has one or more attributes, then all attributes must be present in both committed datatypes and they must be identical. Two attributes are considered identical if their datatype description, dataspace, and raw data values are the same. However, if an attribute uses a committed datatype, that committed datatype's attributes will not be compared.</p>
<p>If a match is found, <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will perform the following in the destination file: </p><ul>
<li>For a committed datatype, the library will create a hard link to the found datatype. </li>
<li>For a dataset that uses a committed datatype, the library will modify the copied dataset to use the found committed datatype as its datatype. </li>
<li>For an object with an attribute of a committed datatype, the library will modify the copied object's attribute to use the found committed datatype as its datatype.</li>
</ul>
<p>If no match is found, <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will perform the following in the destination file: </p><ul>
<li>For a committed datatype, the library will copy it as it would any other object, creating a named committed datatype at the destination. That is, the library will create a committed datatype that is accessible in the file by a unique path. </li>
<li>For a dataset that uses a committed datatype, the library will copy the datatype as an anonymous committed datatype and use that as the dataset's datatype. </li>
<li>For an object with an attribute of a committed datatype, the library will copy the datatype as an anonymous committed datatype and use that as the attribute's datatype.</li>
</ul>
<p><b>Motivation:</b> <a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> provides a means to override the default behavior of <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> when <a class="el" href="_h5_opublic_8h.html#a11355b69cd246ae15e7d4c53cd210bd8">H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG</a> is set in an object copy property list. <a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> is the mechanism for suggesting search paths where <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will look for a matching committed datatype. This can be substantially faster than the default approach of searching the entire destination file for a match.</p>
<p><b>Example</b> <b>Usage:</b> This example adds two paths to the object copy property list. <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will search the two suggested paths for a match before searching all the committed datatypes in the destination file.</p>
<pre>
int main(void) {
hid_t ocpypl_id = H5Pcreate(H5P_OBJECT_COPY);
H5Pset_copy_object(ocpypl_id, H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG);
H5Padd_merge_committed_dtype_path(ocpypl_id, "/group/committed_dtypeA");
H5Padd_merge_committed_dtype_path(ocpypl_id, "/group2/committed_dset");
H5Ocopy(...ocpypl_id...);
...
...
}
</pre><dl class="section note"><dt>Note</dt><dd><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> will fail if the object copy property list is invalid. It will also fail if there is insufficient memory when duplicating <code>path</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> </li>
<li><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> </li>
<li><a href="https://portal.hdfgroup.org/display/HDF5/Copying+Committed+Datatypes+with+H5Ocopy">Copying Committed Datatypes with H5Ocopy()</a></li>
</ul>
</dd></dl>
<dl class="section since"><dt>Since</dt><dd>1.8.9 </dd></dl>
</div>
</div>
<a id="ga4b8d6496ac56b167dba16729a8bd7adf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b8d6496ac56b167dba16729a8bd7adf">◆ </a></span>H5Pfree_merge_committed_dtype_paths()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Pfree_merge_committed_dtype_paths </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td>
<td class="paramname"><em>plist_id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears the list of paths stored in the object copy property list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist_id</td><td>Object copy property list identifier</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl>
<p><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> clears the suggested paths stored in the object copy property list <code>plist_id</code>. These are the suggested paths previously set with <a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a>.</p>
<p><b>Example</b> <b>Usage:</b> This example adds a suggested path to the object copy property list, does the copy, clears the list, and then adds a new suggested path to the list for another copy.</p>
<pre>
int main(void) {
hid_t ocpypl_id = H5Pcreate(H5P_OBJECT_COPY);
H5Pset_copy_object(ocpypl_id, H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG);
H5Padd_merge_committed_dtype_path(ocpypl_id, "/group/committed_dtypeA");
H5Ocopy(...ocpypl_id...);
...
...
H5Pfree_merge_committed_dtype_paths(ocpypl_id);
H5Padd_merge_committed_dtype_path(ocpypl_id, "/group2/committed_dtypeB");
H5Ocopy(...ocpypl_id...);
...
...
}
</pre><dl class="section note"><dt>Note</dt><dd><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> will fail if the object copy property list is invalid.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> </li>
<li><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a></li>
</ul>
</dd></dl>
<dl class="section since"><dt>Since</dt><dd>1.8.9 </dd></dl>
</div>
</div>
<a id="gad81b509481ba53a1ef1ba3c7083fc295"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad81b509481ba53a1ef1ba3c7083fc295">◆ </a></span>H5Pget_copy_object()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Pget_copy_object </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td>
<td class="paramname"><em>plist_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned * </td>
<td class="paramname"><em>copy_options</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves the properties to be used when an object is copied. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist_id</td><td>Object copy property list identifier </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">copy_options</td><td>Copy option(s) set in the object copy property list</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl>
<p><a class="el" href="group___o_c_p_y_p_l.html#gad81b509481ba53a1ef1ba3c7083fc295" title="Retrieves the properties to be used when an object is copied.">H5Pget_copy_object()</a> retrieves the properties currently specified in the object copy property list <code>plist_id</code>, which will be invoked when a new copy is made of an existing object.</p>
<p><code>copy_options</code> is a bit map indicating the flags, or properties, governing object copying that are set in the property list <code>plist_id</code>.</p>
<p>The available flags are described in <a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a>.</p>
<dl class="section since"><dt>Since</dt><dd>1.8.0 </dd></dl>
</div>
</div>
<a id="ga5d7b82394d37bda28769a0435300d396"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5d7b82394d37bda28769a0435300d396">◆ </a></span>H5Pget_mcdt_search_cb()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Pget_mcdt_search_cb </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td>
<td class="paramname"><em>plist_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> * </td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void ** </td>
<td class="paramname"><em>op_data</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves the callback function from the specified object copy property list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist_id</td><td>Object copy property list identifier </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">func</td><td>User-defined callback function </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">op_data</td><td>User-defined data for the callback function</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl>
<p><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> retrieves the user-defined callback function and the user data that are set via <a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> in the object copy property list <code>plist_id</code>.</p>
<p>The callback function will be returned in the parameter <code>func</code> and the user data will be returned in the parameter <code>op_data</code>.</p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> will fail if the object copy property list is invalid.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> </li>
<li><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> </li>
<li><a href="https://portal.hdfgroup.org/display/HDF5/Copying+Committed+Datatypes+with+H5Ocopy">Copying Committed Datatypes with H5Ocopy()</a></li>
</ul>
</dd></dl>
<dl class="section since"><dt>Since</dt><dd>1.8.9 </dd></dl>
</div>
</div>
<a id="ga8819261e0b4663827212892e10dfc8a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8819261e0b4663827212892e10dfc8a6">◆ </a></span>H5Pset_copy_object()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Pset_copy_object </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td>
<td class="paramname"><em>plist_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned </td>
<td class="paramname"><em>copy_options</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets properties to be used when an object is copied. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist_id</td><td>Object copy property list identifier </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">copy_options</td><td>Copy option(s) to be set</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl>
<p><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a> sets properties in the object copy property list <code>plist_id</code>. When an existing object is copied, that property list will determine how the new copy is created.</p>
<p>The following flags are available for use in an object copy property list:</p>
<table class="doxtable">
<tr>
<td><a class="el" href="_h5_opublic_8h.html#af17242deb8f10196a580daf25daa17a0">H5O_COPY_SHALLOW_HIERARCHY_FLAG</a> </td><td>Copy only immediate members of a group<br />
<em>Default behavior, without flag:</em> Recursively copy all objects in and below the group. </td></tr>
<tr>
<td><a class="el" href="_h5_opublic_8h.html#a649171ae36665d655d9f13906462c736">H5O_COPY_EXPAND_SOFT_LINK_FLAG</a> </td><td>Expand soft links into new objects<br />
<em>Default behavior, without flag:</em> Copy soft links as they are. </td></tr>
<tr>
<td><a class="el" href="_h5_opublic_8h.html#a52b583ea3c1dd9cbc49a8c36a0383ca6">H5O_COPY_EXPAND_EXT_LINK_FLAG</a> </td><td>Expand external link into new objects<br />
<em>Default behavior, without flag:</em> Copy external links as they are. </td></tr>
<tr>
<td><a class="el" href="_h5_opublic_8h.html#a8e951bb94b78613a9f4d90b53287f024">H5O_COPY_EXPAND_REFERENCE_FLAG</a> </td><td>Copy objects that are pointed to by references and update reference values in destination file<br />
<em>Default behavior, without flag:</em> Set reference values in destination file to zero (0) </td></tr>
<tr>
<td><a class="el" href="_h5_opublic_8h.html#abc54bab3b27a232d430a3e836506de4c">H5O_COPY_WITHOUT_ATTR_FLAG</a> </td><td>Copy object without copying attributes<br />
<em>Default behavior, without flag:</em> Copy object with all its attributes </td></tr>
<tr>
<td><a class="el" href="_h5_opublic_8h.html#a11355b69cd246ae15e7d4c53cd210bd8">H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG</a> </td><td><p class="starttd">Use a matching committed datatype in the destination file when copying a committed datatype, a dataset with a committed datatype, or an object with an attribute of committed datatype <br />
<em>Default behavior without flag:</em></p>
<ul>
<li>A committed datatype in the source will be copied to the destination as a committed datatype. </li>
<li>If a dataset in the source uses a committed datatype or an object in the source has an attribute of a committed datatype, that committed datatype will be written to the destination as an anonymous committed datatype. If copied in a single <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> operation, objects that share a committed datatype in the source will share an anonymous committed datatype in the destination copy. Subsequent <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> operations, however, will be unaware of prior anonymous committed datatypes and will create new ones.</li>
</ul>
<p>See the “See Also” section immediately below for functions related to the use of this flag. </p>
</td></tr>
</table>
<dl class="section see"><dt>See also</dt><dd>Functions and a callback function used to tune committed datatype copying behavior: <ul>
<li><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> </li>
<li><a href="https://portal.hdfgroup.org/display/HDF5/Copying+Committed+Datatypes+with+H5Ocopy">Copying Committed Datatypes with H5Ocopy()</a></li>
</ul>
</dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.8.9 <a class="el" href="_h5_opublic_8h.html#a11355b69cd246ae15e7d4c53cd210bd8">H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG</a> added in this release.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>1.8.0 </dd></dl>
</div>
</div>
<a id="ga9e0448885990a1b9ebd4493b7604f0c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e0448885990a1b9ebd4493b7604f0c1">◆ </a></span>H5Pset_mcdt_search_cb()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Pset_mcdt_search_cb </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td>
<td class="paramname"><em>plist_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> </td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>op_data</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the callback function that <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will invoke before searching the entire destination file for a matching committed datatype. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist_id</td><td>Object copy property list identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>User-defined callback function </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">op_data</td><td>User-defined input data for the callback function</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl>
<p><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> allows an application to set a callback function, <code>func</code>, that will be invoked before searching the destination file for a matching committed datatype. The default, global search process is described in <a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a>.</p>
<p>The callback function must conform to the <a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> prototype and will return an instruction for one of the following actions:</p>
<ul>
<li>Continue the search for a matching committed datatype in the destination file. </li>
<li>Discontinue the search for a matching committed datatype. <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> will then apply the default behavior of creating an anonymous committed datatype. </li>
<li>Abort the copy operation and exit <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a>.</li>
</ul>
<p><b>Motivation:</b> <a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> provides the means to define a callback function. An application can then use that callback to take an additional action before the default search of all committed datatypes in the destination file or to take an action that replaces the default search. This mechanism is intended to improve performance when the global search might take a long time.</p>
<p><b>Example</b> <b>Usage:</b> This example defines a callback function in the object copy property list.</p>
<pre>
static H5O_mcdt_search_ret_t
mcdt_search_cb(void *_udata)
{
H5O_mcdt_search_ret_t action = *((H5O_mcdt_search_ret_t *)_udata);
return(action);
}
int main(void) {
hid_t ocpypl_id = H5Pcreate(H5P_OBJECT_COPY);
H5Pset_copy_object(ocpypl_id, H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG);
H5Padd_merge_committed_dtype_path(ocpypl_id, "/group/committed_dtypeA");
action = H5O_MCDT_SEARCH_STOP;
H5Pset_mcdt_search_cb(ocpypl_id, mcdt_search_cb, &action);
H5Ocopy(...ocpypl_id...);
...
...
}
</pre><dl class="section note"><dt>Note</dt><dd><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> will fail if the object copy property list is invalid.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>If the callback function return value causes <a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> to abort, the destination file may be left in an inconsistent or corrupted state.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group___h5_o.html#gaa94449be6f67f499be5ddd3fc44f4225" title="Copies an object in an HDF5 file.">H5Ocopy()</a> </li>
<li><a class="el" href="_h5_opublic_8h.html#aa35611ba3daa73768194274c0e2a20eb">H5O_mcdt_search_cb_t</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#gab89c9debe50afca848151ff046afc82f" title="Adds a path to the list of paths that will be searched in the destination file for a matching committ...">H5Padd_merge_committed_dtype_path()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga4b8d6496ac56b167dba16729a8bd7adf" title="Clears the list of paths stored in the object copy property list.">H5Pfree_merge_committed_dtype_paths()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga5d7b82394d37bda28769a0435300d396" title="Retrieves the callback function from the specified object copy property list.">H5Pget_mcdt_search_cb()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga8819261e0b4663827212892e10dfc8a6" title="Sets properties to be used when an object is copied.">H5Pset_copy_object()</a> </li>
<li><a class="el" href="group___o_c_p_y_p_l.html#ga9e0448885990a1b9ebd4493b7604f0c1" title="Sets the callback function that H5Ocopy() will invoke before searching the entire destination file fo...">H5Pset_mcdt_search_cb()</a> </li>
<li><a href="https://portal.hdfgroup.org/display/HDF5/Copying+Committed+Datatypes+with+H5Ocopy">Copying Committed Datatypes with H5Ocopy()</a></li>
</ul>
</dd></dl>
<dl class="section since"><dt>Since</dt><dd>1.8.9 </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Mon Sep 18 2023 17:00:16 for HDF5 by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>
|