Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

HDF5 (C++): provjera egzistencije objekta u fileu (informacija)

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Melkor
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 10. 2004. (18:48:00)
Postovi: (291)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
140 = 152 - 12
Lokacija: Void

PostPostano: 0:52 čet, 3. 4. 2008    Naslov: HDF5 (C++): provjera egzistencije objekta u fileu Citirajte i odgovorite

U jednom dijelu programa želim provjeriti postoji li dataset u fileu. Dokumentacija za HDF5 C API kaže da se za to može koristiti funkcija [tt]H5Gget_objinfo()[/tt] čija je signatura:

[tt][i]herr_t[/i] H5Gget_objinfo( [i]hid_t[/i] loc_id, [i]const char[/i] *name, [i]hbool_t[/i] follow_link, [i]H5G_stat_t[/i] *statbuf )[/tt]

Naime, za [tt]statbuf[/tt] se proslijedi [tt]NULL[/tt] i gleda se povratna vrijednost: ako je negativna, objekt ne postoji, ako je nenegativna, objekt postoji.

E sad, u C++ API-ju se dotična funkcija nalazi u sučelju klase [tt]H5::H5File[/tt] (zapravo u njenoj baznoj klasi [tt]H5::CommonFG[/tt]) u sljedećem obliku (tj. jednom od oblika):

[tt][i]void[/i] H5::CommonFG::getObjinfo( [i]const char[/i] *name, [i]H5G_stat_t[/i] &statbuf ) const[/tt]

Poanta: više nema povratne vrijednosti i mora se nešto proslijediti za [tt]statbuf[/tt], ne može to biti [tt]0[/tt].

Moje ne baš elegantno rješenje:
[code:1]
inline bool objExists(const H5::CommonFG& fg, const char* obj) {
try {
H5G_stat_t dummy;
fg.getObjinfo(obj, dummy);
return true;
}
catch (H5::Exception&) {
return false;
}
}
[/code:1]

Ima li netko bolju ideju? Nekako ne mogu vjerovati da nisu predvidjeli funkciju koja provjerava postojanje objekta u fileu. Imam osjećaj da mi to čitavo vrijeme promiče. :)
U jednom dijelu programa želim provjeriti postoji li dataset u fileu. Dokumentacija za HDF5 C API kaže da se za to može koristiti funkcija H5Gget_objinfo() čija je signatura:

herr_t H5Gget_objinfo( hid_t loc_id, const char *name, hbool_t follow_link, H5G_stat_t *statbuf )

Naime, za statbuf se proslijedi NULL i gleda se povratna vrijednost: ako je negativna, objekt ne postoji, ako je nenegativna, objekt postoji.

E sad, u C++ API-ju se dotična funkcija nalazi u sučelju klase H5::H5File (zapravo u njenoj baznoj klasi H5::CommonFG) u sljedećem obliku (tj. jednom od oblika):

void H5::CommonFG::getObjinfo( const char *name, H5G_stat_t &statbuf ) const

Poanta: više nema povratne vrijednosti i mora se nešto proslijediti za statbuf, ne može to biti 0.

Moje ne baš elegantno rješenje:
Kod:

inline bool objExists(const H5::CommonFG& fg, const char* obj) {
    try {
        H5G_stat_t dummy;
        fg.getObjinfo(obj, dummy);
        return true;
    }
    catch (H5::Exception&) {
        return false;
    }
}


Ima li netko bolju ideju? Nekako ne mogu vjerovati da nisu predvidjeli funkciju koja provjerava postojanje objekta u fileu. Imam osjećaj da mi to čitavo vrijeme promiče. Smile



_________________
I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 10:36 čet, 3. 4. 2008    Naslov: Citirajte i odgovorite

Prvo sto mi pada na pamet je
[code:1]H5::CommonFG::iterateElems[/code:1]
funkcija, kojoj das komparator sa zadanim imenom i dobijes 0 ako doticni objekt ne postoji, ne-0 inace. Exception se ne (bi trebao) baca(ti).

Neke druge ideje?
Prvo sto mi pada na pamet je
Kod:
H5::CommonFG::iterateElems

funkcija, kojoj das komparator sa zadanim imenom i dobijes 0 ako doticni objekt ne postoji, ne-0 inace. Exception se ne (bi trebao) baca(ti).

Neke druge ideje?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan