summaryrefslogtreecommitdiffstats
path: root/src/H5Mprivate.h
blob: badc74113e8e4f101d3c65f64515e97fb0f4f793 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/****************************************************************************
 * NCSA HDF                                                                 *
 * Software Development Group                                               *
 * National Center for Supercomputing Applications                          *
 * University of Illinois at Urbana-Champaign                               *
 * 605 E. Springfield, Champaign IL 61820                                   *
 *                                                                          *
 * For conditions of distribution and use, see the accompanying             *
 * hdf/COPYING file.                                                        *
 *                                                                          *
 ****************************************************************************/

/* $Id$ */

/*
 * This file contains macros & information for meta-objects
 */

#ifndef _H5Mprivate_H
#define _H5Mprivate_H
#include <H5Mpublic.h>          /* Include Public Definitions */

/* Private headers needed by this file */
#include <H5private.h>

/*
 * A function table record for accessing interfaces which use the "meta"
 *  interface to create/open/close objects.
 */
typedef struct meta_func_t {
    group_t                 type;       /* Object type this interface is for */
    hid_t                   (*create) (hid_t, group_t, const char *);   /* Object creation function */
    hid_t                   (*access) (hid_t);  /* Object access function */
    hid_t                   (*copy) (hid_t);    /* Object copy function */
    hid_t                   (*find_name) (hid_t, group_t, const char *);        /* Find first object */
    uint32                  (*name_len) (hid_t);        /* Get length of object name */
    herr_t                  (*get_name) (hid_t, char *);        /* Get object name */
    herr_t                  (*set_name) (hid_t, const char *);  /* Set object name */
    hid_t                   (*search) (hid_t, group_t, const char *);   /* Search for list of objects */
    hid_t                   (*index) (hid_t, group_t, uint32);  /* Get the OID for the n'th object */
    herr_t                  (*flush) (hid_t);   /* Flush the object to disk */
    herr_t                  (*delete) (hid_t);  /* Delete an object from file */
    hid_t                   (*get_parent) (hid_t);      /* Get the parent object of an object */
    hid_t                   (*get_file) (hid_t);        /* Get the file ID of an object */
    herr_t                  (*close) (hid_t);   /* End access to an object */
} meta_func_t;

/* Private functions, not part of the publicly documented API */

#endif