HDF5 C++ API Reference Manual

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

# H5IdComponent.h

Go to the documentation of this file.

    00001 // C++ informative line for the emacs editor: -*- C++ -*-
    00002 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    00003  * Copyright by The HDF Group.                                               *
    00004  * Copyright by the Board of Trustees of the University of Illinois.         *
    00005  * All rights reserved.                                                      *
    00006  *                                                                           *
    00007  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
    00008  * terms governing use, modification, and redistribution, is contained in    *
    00009  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
    00010  * of the source code distribution tree; Copyright.html can be found at the  *
    00011  * root level of an installed copy of the electronic HDF5 document set and   *
    00012  * is linked from the top-level documents page.  It can also be found at     *
    00013  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
    00014  * access to either file, you may request a copy from help@hdfgroup.org.     *
    00015  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    00016
    00017 #ifndef _IdComponent_H
    00018 #define _IdComponent_H
    00019
    00020 // IdComponent represents an HDF5 object that has an identifier.
    00021
    00022 #ifndef H5_NO_NAMESPACE
    00023 namespace H5 {
    00024 #endif
    00025
    00026 class DataSpace;
    00027 class H5_DLLCPP IdComponent {
    00028    public:
    00029         // Increment reference counter.
    00030         void incRefCount(const hid_t obj_id) const;
    00031         void incRefCount() const;
    00032
    00033         // Decrement reference counter.
    00034         void decRefCount(const hid_t obj_id) const;
    00035         void decRefCount() const;
    00036
    00037         // Get the reference counter to this identifier.
    00038         int getCounter(const hid_t obj_id) const;
    00039         int getCounter() const;
    00040
    00041         // Returns an HDF5 object type, given the object id.
    00042         static H5I_type_t getHDFObjType(const hid_t obj_id);
    00043
    00044         // Assignment operator.
    00045         IdComponent& operator=( const IdComponent& rhs );
    00046
    00047         // Gets the identifier of this object.
    00048         virtual hid_t getId () const = 0;
    00049
    00050         // Sets the identifier of this object to a new value.
    00051         void setId(const hid_t new_id);
    00052
    00053         // Creates an object to hold an HDF5 identifier.
    00054         IdComponent( const hid_t h5_id );
    00055
    00056         // Copy constructor: makes copy of the original IdComponent object.
    00057         IdComponent( const IdComponent& original );
    00058
    00059 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00060         // Pure virtual function for there are various H5*close for the
    00061         // subclasses.
    00062         virtual void close() = 0;
    00063
    00064         // Makes and returns the string "<class-name>::<func_name>";
    00065         // <class-name> is returned by fromClass().
    00066         H5std_string inMemFunc(const char* func_name) const;
    00067
    00068         // Returns this class name.
    00069         virtual H5std_string fromClass() const { return("IdComponent");}
    00070
    00071 #endif // DOXYGEN_SHOULD_SKIP_THIS
    00072
    00073         // Destructor
    00074         virtual ~IdComponent();
    00075
    00076    protected:
    00077 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00078
    00079         // Default constructor.
    00080         IdComponent();
    00081
    00082         // Gets the name of the file, in which an HDF5 object belongs.
    00083         H5std_string p_get_file_name() const;
    00084
    00085         // Retrieves the type of object that an object reference points to.
    00086         H5G_obj_t p_get_refobj_type(void *ref, H5R_type_t ref_type) const;
    00087
    00088         // Verifies that the given id is valid.
    00089         static bool p_valid_id(const hid_t obj_id);
    00090
    00091         // Sets the identifier of this object to a new value. - this one
    00092         // doesn't increment reference count
    00093         virtual void p_setId(const hid_t new_id) = 0;
    00094
    00095         // Opens the HDF5 object referenced.
    00096
    00097 #endif // DOXYGEN_SHOULD_SKIP_THIS
    00098
    00099 }; // end class IdComponent
    00100
    00101 #ifndef H5_NO_NAMESPACE
    00102 }
    00103 #endif
    00104 #endif