mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-27 07:30:33 +08:00
50 lines
1.9 KiB
C
50 lines
1.9 KiB
C
|
/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc.
|
||
|
See the COPYRIGHT file for more information. */
|
||
|
|
||
|
#ifndef OCCONTENT_H
|
||
|
#define OCCONTENT_H
|
||
|
|
||
|
/*! Specifies the OCcontent*/
|
||
|
typedef struct OCcontent {
|
||
|
unsigned int magic;
|
||
|
OCmode mode;
|
||
|
struct OCstate* state;
|
||
|
struct OCnode* node;
|
||
|
struct OCtree* tree;
|
||
|
size_t index; /* dim, record, or field*/
|
||
|
size_t maxindex; /* 0 => max unknown */
|
||
|
int packed; /* track OC_String and OC_Byte specially*/
|
||
|
struct {
|
||
|
int valid; /* if the offset field contains a valid offset */
|
||
|
unsigned int offset; /* location of this content in the xdr data */
|
||
|
} xdrpos;
|
||
|
OCmemdata* memdata; /* iff compiled */
|
||
|
struct OCcontent* next;
|
||
|
} OCcontent;
|
||
|
|
||
|
extern struct OCcontent* ocnewcontent(struct OCstate*);
|
||
|
extern void ocfreecontent(struct OCstate*, struct OCcontent*);
|
||
|
|
||
|
extern int ocrootcontent(struct OCstate*, struct OCnode*, struct OCcontent*);
|
||
|
extern int ocarraycontent(struct OCstate*, struct OCcontent*, struct OCcontent*, size_t);
|
||
|
extern int ocrecordcontent(struct OCstate*, struct OCcontent*, struct OCcontent*, size_t);
|
||
|
extern int ocfieldcontent(struct OCstate*, struct OCcontent*, struct OCcontent*, size_t);
|
||
|
|
||
|
extern int ocgetcontent(struct OCstate*, struct OCcontent*, void* memory, size_t memsize,
|
||
|
size_t start, size_t count);
|
||
|
|
||
|
|
||
|
extern size_t ocarraycount(struct OCstate*, struct OCcontent*);
|
||
|
extern size_t ocrecordcount(struct OCstate*, struct OCcontent*);
|
||
|
extern size_t ocfieldcount(struct OCstate*, struct OCcontent*);
|
||
|
|
||
|
extern OCmode occontentmode(struct OCstate* conn, struct OCcontent*);
|
||
|
extern struct OCnode* occontentnode(struct OCstate* conn, struct OCcontent*);
|
||
|
extern size_t occontentindex(struct OCstate* conn, struct OCcontent*);
|
||
|
|
||
|
/* These are not really for external use.*/
|
||
|
extern struct OCcontent* ocresetcontent(struct OCstate*, OCcontent*);
|
||
|
extern struct OCcontent* occlonecontent(struct OCstate*, OCcontent*);
|
||
|
|
||
|
#endif /*OCCONTENT_H*/
|