/*
 * attr_trait.h
 *
 * Version 1.0.0 : Frederick Roeber : 14 May 1993
 *
 * I have derived this header file to replace the one unreleased by Apollo.
 */

#ifndef ATTR_TRAIT_H
#define ATTR_TRAIT_H

#include "attr.h"
#include "trait.h"

typedef struct attr_$epv
{
    void
    (*inq_ref_count)    /* inquire reference count */
    (
        void *&handle,              /* the object handle */
        unsigned long *ref_count,   /* store the count here */
        status_$t *status
    );

    void
    (*inq_time)     /* inquire timestamp */
    (
        void *&handle,
        attr_$time_type_t &which,   /* created, modified, used, etc. */
        time_$clock_t *time,
        status_$t *status
    );

    void
    (*set_time)     /* set a timestamp */
    (
        void *&handle,
        attr_$time_type_t &which,   /* created, modified, used, etc. */
        time_$clock_t &time,
        status_$t *status
    );

    void
    (*inq_blocks)   /* inquire block size and count */
    (
        void *&handle,
        unsigned long *blocks_count,
        unsigned long *block_size,
        status_$t *status
    );
} attr_$epv;

extern trait_$t attr_$trait;

#enfif /* ATTR_TRAIT_H */
