Ah, I see.  I'm glad you got it.  Thanks, Yury

Binh-Minh
________________________________
From: Hdf-forum <[email protected]> on behalf of Yury 
Girshovich <[email protected]>
Sent: Thursday, July 25, 2013 4:15 PM
To: HDF Users Discussion List
Subject: Re: [Hdf-forum] Reading enum bool attribute

Binh-Minh,
I made it work. Being a novice HDF5 user, I did not know that I had to use 
H5Tenum_insert to define the enum datatype. Now everything works.
Thanks a lot for your help!!!
Yury,


On Wed, Jul 24, 2013 at 4:19 PM, Binh-Minh Ribler 
<[email protected]<mailto:[email protected]>> wrote:
Hi Yury,

Methods like getInMemDataSize(), getStorageSize(), etc. were what I meant.
I'll keep an eye out for your message with an excerpt of the data file.

Thanks,
Binh-Minh
________________________________
From: Hdf-forum 
<[email protected]<mailto:[email protected]>>
 on behalf of Yury Girshovich 
<[email protected]<mailto:[email protected]>>
Sent: Wednesday, July 24, 2013 3:34 PM

To: HDF Users Discussion List
Subject: Re: [Hdf-forum] Reading enum bool attribute

Hi Binh-Minh,
Thank you very much. I need  to ask the owner permission first for sharing the 
file. Perhaps they can create
a very small file just to display the problem.
Let me try to separate the code meanwhile, which may take a bit. I'll email it 
to you with the data asap.

I did not use an HDF5 method to find the attribute data type. Are there any? I 
know the data type from the HDF5 viewer.
Here is the relevant portion of my code:
The disassembly is attached.

.                //is_hollow is enum with members {false, true} and value size 1
                //bool h, h1, h2;

                size_t sz1 = attr.getInMemDataSize(); //=1
                size_t sz2 = attr.getStorageSize();   //=1
                printf("sz1 %d; sz2 %d, szbool %d\n", sz1, sz2, sizeof(bool)); 
//sz1 1, sz2 1, szbool 1

                //the sizes coincide, but each one of those calls crashes.
                //int i1 = 0;
                //attr.read(PredType::NATIVE_INT, &i1);
                //printf("i1 = %d\n", i1);
                char c1 = 0;
                attr.read(PredType::NATIVE_CHAR, &c1);

//                attr.read(PredType::NATIVE_B8, &BB);
//                attr.read(boolenumtype, &BB);
//                attr.read(PredType::NATIVE_B8, &h);
//                attr.read(PredType::NATIVE_UINT8, &h1);
//                attr.read(PredType::NATIVE_UCHAR, &h2);
//                printf("is_hollow %d %d %d\n", h, h1, h2);
            }

The error message is:
No source available for "raise() at 0x3d66835ba5"
The code crashed with all the versions of attribure datatypes.

Thanks again,
Yury

On Wed, Jul 24, 2013 at 3:02 PM, Binh-Minh Ribler 
<[email protected]<mailto:[email protected]>> wrote:
Hi Yury,

Is there any chance I can have a copy of the file and that part of your code, 
from opening the file, perhaps?  I want to repeat the exact steps.  If not, 
please send me the errors.

Binh-Minh
________________________________
From: Hdf-forum 
<[email protected]<mailto:[email protected]>>
 on behalf of Yury Girshovich 
<[email protected]<mailto:[email protected]>>
Sent: Wednesday, July 24, 2013 2:35 PM

To: HDF Users Discussion List
Subject: Re: [Hdf-forum] Reading enum bool attribute

Scott,
I agree about the enum size. It was the returned value of the call to 
attr.getInMemDataSize(). Sorry for the misinformation.

The call to:

int i;
attr.read(PredType::NATIVE_INT, &i)

causes a crash. That is not surprising because of the size discrepancy. But I 
also tried to use all kinds of 8bit creatures,
like char, uchar, bool, replacing NATIVE_INT by NATIVE_CHAR, etc., but they all 
ended up with a crash.

Thanks,
Yury



On Wed, Jul 24, 2013 at 1:57 PM, Mitchell, Scott - IS 
<[email protected]<mailto:[email protected]>> wrote:

I don’t think enums are stored as 1byte. You can check with H5T.getsize.



What happens if you try your read with attr_type as a NATIVE_INT and i as an 
int? Then cast it to bb.





Scott



From: Hdf-forum 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Yury Girshovich

Sent: Wednesday, July 24, 2013 1:04 PM
To: [email protected]<mailto:[email protected]>
Subject: [Hdf-forum] Reading enum bool attribute



I am trying to read an attribute defined as



typedef enum {bbo=false, bb1=true} bb;



as



bb i;

attr.read(attr_type, &i);

The size of the attribute value is 1 byte.



For attr_type I tried all kinds of 8 bit predicate types (as one advice 
suggested use int, and then interpret your data),

bur no matter what I do the code crashes.

The value is inserted in a different code using Python, so I can get no help 
from there.

How should I define the predicate type then?

Thanks



________________________________

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 Exelis Inc. The 
recipient should check this e-mail and any attachments for the presence of 
viruses. Exelis Inc. accepts no liability for any damage caused by any virus 
transmitted by this e-mail.

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org



_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org



_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org

Reply via email to