//================================================================ // These are conversion routines to turn our .NET structures into // their HDF5-persistable version equivalents. // private KeyValT Convert(string key, string val) { byte[] keydata = System.Text.Encoding.UTF8.GetBytes(key); byte[] valdata = System.Text.Encoding.UTF8.GetBytes(val); if (keydata.Length > FIXED_STRING_LENGTH) { throw new InvalidOperationException("Key is longer than 40 characters."); } if (valdata.Length > FIXED_STRING_LENGTH) { throw new InvalidOperationException("Value string is longer than 40 characters."); } KeyValT kv = new KeyValT(); unsafe { for (int i = 0; i < Math.Min(keydata.Length, FIXED_STRING_LENGTH); i++) { kv.key[i] = keydata[i]; } for (int i = 0; i < Math.Min(valdata.Length, FIXED_STRING_LENGTH); i++) { kv.val[i] = valdata[i]; } } return(kv); }
//================================================================ // These are conversion routines to turn our .NET structures into // their HDF5-persistable version equivalents. // private KeyValT Convert(string key, string val) { byte[] keydata = System.Text.Encoding.UTF8.GetBytes(key); byte[] valdata = System.Text.Encoding.UTF8.GetBytes(val); if (keydata.Length > FIXED_STRING_LENGTH) throw new InvalidOperationException("Key is longer than 40 characters."); if (valdata.Length > FIXED_STRING_LENGTH) throw new InvalidOperationException("Value string is longer than 40 characters."); KeyValT kv = new KeyValT(); unsafe { for (int i = 0; i < Math.Min(keydata.Length, FIXED_STRING_LENGTH); i++) kv.key[i] = keydata[i]; for (int i = 0; i < Math.Min(valdata.Length, FIXED_STRING_LENGTH); i++) kv.val[i] = valdata[i]; } return kv; }