(* ::Package:: *)

(************************************************************************)
(* This file was generated automatically by the Mathematica front end.  *)
(* It contains Initialization cells from a Notebook file, which         *)
(* typically will have the same name as this file except ending in      *)
(* ".nb" instead of ".m".                                               *)
(*                                                                      *)
(* This file is intended to be loaded into the Mathematica kernel using *)
(* the package loading commands Get or Needs.  Doing so is equivalent   *)
(* to using the Evaluate Initialization Cells menu command in the front *)
(* end.                                                                 *)
(*                                                                      *)
(* DO NOT EDIT THIS FILE.  This entire file is regenerated              *)
(* automatically each time the parent Notebook file is saved in the     *)
(* Mathematica front end.  Any changes you make to this file will be    *)
(* overwritten.                                                         *)
(************************************************************************)



BeginPackage["HDF5`",{"NETLink`"}]


$HDF5packageVersion="V1.00"


$pathToDefinitions=FileNameJoin[{Directory[],"DefinitionsForConstants.txt"}]


$pathToDLL=FileNameJoin[{Directory[],"HDF5DotNet-Net2.0-x86_64","hdf5dll.dll"}]


$pathToDotNet=FileNameJoin[{Directory[],"HDF5DotNet-Net2.0-x86_64","HDF5DotNet.dll"}]


Get[$pathToDefinitions]


LoadNETAssembly[$pathToDotNet];
LoadNETType["HDF5DotNet.H5T"];
LoadNETType["HDF5DotNet.H5T+H5Type"];


LoadNETType["HDF5DotNet.H5P"];
LoadNETType["HDF5DotNet.H5P+PropertyListClass"];


H5open=DefineDLLFunction["H5open",$pathToDLL,"Int32",{}]


H5getUlibversion=DefineDLLFunction["H5get_libversion",$pathToDLL,"Int32",{"Int32*","Int32*","Int32*"}]


H5close=DefineDLLFunction["H5close",$pathToDLL,"Int32",{}]


H5Acreate=DefineDLLFunction["H5Acreate2",$pathToDLL,"Int32",{"Int32","String","Int32","Int32","Int32","Int32"}]


H5Aopen=DefineDLLFunction["H5Aopen",$pathToDLL,"Int32",{"Int32","String","Int32"}]


H5AopenByName=DefineDLLFunction["H5Aopen_by_name",$pathToDLL,"Int32",{"Int32","String","String","Int32","Int32"}]


H5AopenByIndex=DefineDLLFunction["H5Aopen_by_idx",$pathToDLL,"Int32",{"Int32","String","Int32","Int32","Int64","Int32","Int32"}]


H5Aclose=DefineDLLFunction["H5Aclose",$pathToDLL,"Int32",{"Int32"}]


H5AgetNumAttrs=DefineDLLFunction["H5Aget_num_attrs",$pathToDLL,"Int32",{"Int32"}]


H5AgetName=DefineDLLFunction["H5Aget_name",$pathToDLL,"Int32",{"Int32","Int32","System.Text.StringBuilder"}]


H5AgetStorageSize=DefineDLLFunction["H5Aget_storage_size",$pathToDLL,"Int32",{"Int32"}]


H5AgetSpace=DefineDLLFunction["H5Aget_space",$pathToDLL,"Int32",{"Int32"}]


H5AgetType=DefineDLLFunction["H5Aget_type",$pathToDLL,"Int32",{"Int32"}]


H5Aread[Byte]=DefineDLLFunction["H5Aread",$pathToDLL,"Int32",{"Int32","Int32","Byte[]"}]


H5Awrite[Byte]=DefineDLLFunction["H5Awrite",$pathToDLL,"Int32",{"Int32","Int32","Byte[]"}]


H5Aread[Integer32]=DefineDLLFunction["H5Aread",$pathToDLL,"Int32",{"Int32","Int32","Int32[]"}]


H5Awrite[Integer32]=DefineDLLFunction["H5Awrite",$pathToDLL,"Int32",{"Int32","Int32","Int32[]"}]


H5Aread[Integer64]=DefineDLLFunction["H5Aread",$pathToDLL,"Int32",{"Int32","Int32","Int64[]"}]


H5Awrite[Integer64]=DefineDLLFunction["H5Awrite",$pathToDLL,"Int32",{"Int32","Int32","Int64[]"}]


H5Aread[SingleFloat]=DefineDLLFunction["H5Aread",$pathToDLL,"Int32",{"Int32","Int32","Single[]"}]


H5Awrite[SingleFloat]=DefineDLLFunction["H5Awrite",$pathToDLL,"Int32",{"Int32","Int32","Single[]"}]


H5Aread[DoubleFloat]=DefineDLLFunction["H5Aread",$pathToDLL,"Int32",{"Int32","Int32","Double[]"}]


H5Awrite[DoubleFloat]=DefineDLLFunction["H5Awrite",$pathToDLL,"Int32",{"Int32","Int32","Double[]"}]


H5Dcreate=DefineDLLFunction["H5Dcreate2",$pathToDLL,"Int32",{"Int32","String","Int32","Int32","Int32","Int32","Int32"}]


H5Dopen=DefineDLLFunction["H5Dopen2",$pathToDLL,"Int32",{"Int32","String","Int32"}]


H5Dclose=DefineDLLFunction["H5Dclose",$pathToDLL,"Int32",{"Int32"}]


H5DgetStorageSize=DefineDLLFunction["H5Dget_storage_size",$pathToDLL,"Int32",{"Int32"}]


H5DgetSpace=DefineDLLFunction["H5Dget_space",$pathToDLL,"Int32",{"Int32"}]


H5DgetType=DefineDLLFunction["H5Dget_type",$pathToDLL,"Int32",{"Int32"}]


H5DgetOffset=DefineDLLFunction["H5Dget_offset",$pathToDLL,"Int32",{"Int32"}]


H5DsetExtent=DefineDLLFunction["H5Dset_extent",$pathToDLL,"Int32",{"Int32","Int64[]"}]


H5DgetCreatePList=DefineDLLFunction["H5Dget_create_plist",$pathToDLL,"Int32",{"Int32"}]


(* ::Input::GrayLevel[0]:: *)
H5Dread[Byte]=DefineDLLFunction["H5Dread",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Byte[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dwrite[Byte]=DefineDLLFunction["H5Dwrite",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Byte[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dread[Integer32]=DefineDLLFunction["H5Dread",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Int32[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dwrite[Integer32]=DefineDLLFunction["H5Dwrite",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Int32[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dread[Integer64]=DefineDLLFunction["H5Dread",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Int64[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dwrite[Integer64]=DefineDLLFunction["H5Dwrite",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Int64[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dread[SingleFloat]=DefineDLLFunction["H5Dread",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Single[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dwrite[SingleFloat]=DefineDLLFunction["H5Dwrite",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Single[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dread[DoubleFloat]=DefineDLLFunction["H5Dread",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Double[]"}]


(* ::Input::GrayLevel[0]:: *)
H5Dwrite[DoubleFloat]=DefineDLLFunction["H5Dwrite",$pathToDLL,"Int32",{"Int32","Int32","Int32","Int32","Int32","Double[]"}]


H5Fcreate=DefineDLLFunction["H5Fcreate",$pathToDLL,"Int32",{"String","Int32","Int32","Int32"}]


H5Fopen=DefineDLLFunction["H5Fopen",$pathToDLL,"Int32",{"String","Int32","Int32"}]


H5Fclose=DefineDLLFunction["H5Fclose",$pathToDLL,"Int32",{"Int32"}]


H5Gcreate=DefineDLLFunction["H5Gcreate2",$pathToDLL,"Int32",{"Int32","String","Int32","Int32","Int32"}]


H5Gopen=DefineDLLFunction["H5Gopen2",$pathToDLL,"Int32",{"Int32","String","Int32"}]


H5Gclose=DefineDLLFunction["H5Gclose",$pathToDLL,"Int32",{"Int32"}]


H5GgetNumObjs=DefineDLLFunction["H5Gget_num_objs",$pathToDLL,"Int32",{"Int32","Int64*"}]


H5GgetObjNameByIndex=DefineDLLFunction["H5Gget_objname_by_idx",$pathToDLL,"Int32",{"Int32","Int64","System.Text.StringBuilder","Int32"}]


H5GgetObjTypeByIndex=DefineDLLFunction["H5Gget_objtype_by_idx",$pathToDLL,"Int32",{"Int32","Int64"}]


H5IgetType=DefineDLLFunction["H5Iget_type",$pathToDLL,"Int32",{"Int32"}]


H5Oopen=DefineDLLFunction["H5Oopen",$pathToDLL,"Int32",{"Int32","String","Int32"}]


H5Oclose=DefineDLLFunction["H5Oclose",$pathToDLL,"Int32",{"Int32"}]


H5Pcreate=DefineDLLFunction["H5Pcreate",$pathToDLL,"Int32",{"Int32"}]


H5PsetChunk=DefineDLLFunction["H5Pset_chunk",$pathToDLL,"Int32",{"Int32","Int32","Int64[]"}]


H5Pclose=DefineDLLFunction["H5Pclose",$pathToDLL,"Int32",{"Int32"}]


H5Screate=DefineDLLFunction["H5Screate",$pathToDLL,"Int32",{"Int32"}]


H5ScreateUsimple=DefineDLLFunction["H5Screate_simple",$pathToDLL,"Int32",{"Int32","Int64[]","Int64[]"}]


H5Sclose=DefineDLLFunction["H5Sclose",$pathToDLL,"Int32",{"Int32"}]


H5SgetSimpleExtentNDims=DefineDLLFunction["H5Sget_simple_extent_ndims",$pathToDLL,"Int32",{"Int32"}]


H5SgetSimpleExtentDims=DefineDLLFunction["H5Sget_simple_extent_dims",$pathToDLL,"Int32",{"Int32","Int64[]","Int64[]"}]


H5SgetSimpleExtentNPoints=DefineDLLFunction["H5Sget_simple_extent_npoints",$pathToDLL,"Int64",{"Int32"}]


H5SisSimple=DefineDLLFunction["H5Sis_simple",$pathToDLL,"Int32",{"Int32"}]


H5SselectHyperSlab=DefineDLLFunction["H5Sselect_hyperslab",$pathToDLL,"Int32",{"Int32","Int32","Int64[]","Int64[]","Int64[]","Int64[]"}]


H5SgetSelectElemNPoints=DefineDLLFunction["H5Sget_select_elem_npoints",$pathToDLL,"Int64",{"Int32"}]


H5SgetSelectHyperNBlocks=DefineDLLFunction["H5Sget_select_hyper_nblocks",$pathToDLL,"Int64",{"Int32"}]


H5SgetSelectNPoints=DefineDLLFunction["H5Sget_select_npoints",$pathToDLL,"Int64",{"Int32"}]


H5SgetSelectType=DefineDLLFunction["H5Sget_select_type",$pathToDLL,"Int32",{"Int32"}]


H5SselectAll=DefineDLLFunction["H5Sselect_all",$pathToDLL,"Int32",{"Int32"}]


H5SselectNone=DefineDLLFunction["H5Sselect_none",$pathToDLL,"Int32",{"Int32"}]


H5Scopy=DefineDLLFunction["H5Scopy",$pathToDLL,"Int32",{"Int32"}]


H5SextentCopy=DefineDLLFunction["H5Sextent_copy",$pathToDLL,"Int32",{"Int32","Int32"}]


H5Tclose=DefineDLLFunction["H5Tclose",$pathToDLL,"Int32",{"Int32"}]


H5TgetClass=DefineDLLFunction["H5Tget_class",$pathToDLL,"Int32",{"Int32"}]


H5TgetNativeType=DefineDLLFunction["H5Tget_native_type",$pathToDLL,"Int32",{"Int32","Int32"}]


H5TgetSize=DefineDLLFunction["H5Tget_size",$pathToDLL,"Int32",{"Int32"}]


H5Tcopy=DefineDLLFunction["H5Tcopy",$pathToDLL,"Int32",{"Int32"}]


H5TgetMemberClass=DefineDLLFunction["H5Tget_member_class",$pathToDLL,"Int32",{"Int32","Int32"}]


H5TgetNMembers=DefineDLLFunction["H5Tget_nmembers",$pathToDLL,"Int32",{"Int32"}]


H5TgetMemberIndex=DefineDLLFunction["H5Tget_member_index",$pathToDLL,"Int32",{"Int32","String"}]


(* HINT: get String's from pointer using LoadNETType["System.Runtime.InteropServices.Marshal"]; Marshal`PtrToStringAnsi[<<NETObject[System.IntPtr]>>. See further documentation: http://msdn.microsoft.com/en-us/library/atxe881w.aspx ]*)
H5TgetMemberName=DefineDLLFunction["H5Tget_member_name",$pathToDLL,"IntPtr",{"Int32","Int32"}]


H5TgetMemberOffset=DefineDLLFunction["H5Tget_member_offset",$pathToDLL,"Int32",{"Int32","Int32"}]


H5TgetMemberType=DefineDLLFunction["H5Tget_member_type",$pathToDLL,"Int32",{"Int32","Int32"}]


H5TisVariableStr=DefineDLLFunction["H5Tis_variable_str",$pathToDLL,"Int32",{"Int32"}]


EndPackage[]
