VIP: Volume Image Processing


object.h
Go to the documentation of this file.
1
4
5#ifndef VIP_OBJECT_H
6#define VIP_OBJECT_H
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
13#include <sys/types.h>
14
15// Structure state
16// Copied from Volume (same values)
17#define STATE_DECLARED 1
18#define STATE_ALLOCATED 2
19#define STATE_FILLED 3
20#define STATE_FREED 4
21
22#define VIP_DEC_OBJECT(aObjectPtr) Object *aObjectPtr = NULL
23
24#define mVipObjState(obj) (obj)->state
25
26// Memory management
27// All VipCreateObject* methods copy the value into the Object
28// (in the vector case, all the members are copied into an std::vector)
29// It is then possible to free the pointed array without risk.
30// Only exception: VipCreateObjectPtr only copies the pointer, and not the
31// pointed variable.
33extern Object *VipCreateObjectPtr( void *val );
34extern Object *VipCreateObjectU8( unsigned char val );
35extern Object *VipCreateObjectS8( signed char val );
36extern Object *VipCreateObjectU16( unsigned short val );
37extern Object *VipCreateObjectS16( short val );
38extern Object *VipCreateObjectU32( unsigned val );
39extern Object *VipCreateObjectS32( int val );
40extern Object *VipCreateObjectU64( unsigned long val );
41extern Object *VipCreateObjectS64( long val );
42extern Object *VipCreateObjectFloat( float val );
43extern Object *VipCreateObjectDouble( double val );
44extern Object *VipCreateObjectString( const char *val );
45extern Object *VipCreateObjectVectorU8( unsigned char *val, size_t size );
46extern Object *VipCreateObjectVectorS8( signed char *val, size_t size );
47extern Object *VipCreateObjectVectorU16( unsigned short *val, size_t size );
48extern Object *VipCreateObjectVectorS16( short *val, size_t size );
49extern Object *VipCreateObjectVectorU32( unsigned *val, size_t size );
50extern Object *VipCreateObjectVectorS32( int *val, size_t size );
51extern Object *VipCreateObjectVectorU64( unsigned long *val, size_t size );
52extern Object *VipCreateObjectVectorS64( long *val, size_t size );
53extern Object *VipCreateObjectVectorFloat( float *val, size_t size );
54extern Object *VipCreateObjectVectorDouble( double *val, size_t size );
55extern Object *VipCreateObjectVectorString( const char **val, size_t size );
57extern int VipFreeObject( Object *obj );
58extern int VipObjectIsNone( Object *obj );
59
60// IO
61extern Object *VipReadObject( const char *name );
62extern int VipWriteObject( Object *obj, const char *name );
63
64// ScalarInterface
65extern int VipObjectIsScalar( Object *obj );
66extern double VipObjectGetScalar( Object *obj );
67extern int VipObjectSetScalar( Object *obj, double val );
68
69// StringInterface
70extern int VipObjectIsString( Object *obj );
71extern const char *VipObjectGetString( Object *obj ); // no need to free char* (?)
72extern int VipObjectSetString( Object *obj, const char *val );
73
74// ArrayInterface
75extern int VipObjectIsArray( Object *obj );
76extern Object *VipObjectGetArrayItem( Object *obj, int item );
77extern int VipObjectSetArrayItem( Object *obj, int item, Object *val );
78
79// DynArrayInterface
80extern int VipObjectIsDynArray( Object *obj );
81extern int VipObjectReserveArray( Object *obj, size_t size );
82extern int VipObjectResizeArray( Object *obj, size_t size);
83extern int VipObjectRemoveArrayItem( Object *obj, int item );
84extern int VipObjectInsertArrayItem( Object *obj, int item, Object *val );
85
86// DictionaryInterface
87extern int VipObjectIsDictionary( Object *obj );
88extern Object *VipObjectGetProperty( Object *obj, const char *key );
89extern int VipObjectSetProperty( Object *obj, const char *key, Object *val );
90extern int VipObjectRemoveProperty( Object *obj, const char *key );
91extern int VipObjectHasProperty( Object *obj, const char *key );
93extern int VipObjectCopyProperties( Object *obj, Object *source );
94// Specializations
95extern int VipObjectSetPropertyDouble( Object *obj, const char *key, double val );
96extern int VipObjectSetPropertyString( Object *obj, const char *key, const char *val );
97
98// SizeInterface
99extern size_t VipObjectSize( Object *obj );
100
101// IterableInterface
102extern int VipObjectIsIterable( Object *obj );
104
105// IteratorInterface
106extern int VipObjectIsIterator( Object *obj );
107extern int VipObjectIsValid( Object *obj );
109extern int VipObjectNext( Object *obj );
110
111// DictionaryIteratorInterface
113extern const char *VipObjectKey( Object *obj );
114
115
116#ifdef __cplusplus
117}
118#endif
119
120#endif // VIP_OBJECT_H
Object * VipCreateObjectPtr(void *val)
Object * VipCreateObjectVectorS64(long *val, size_t size)
int VipObjectReserveArray(Object *obj, size_t size)
int VipObjectIsValid(Object *obj)
Object * VipCreateObjectU8(unsigned char val)
int VipObjectIsDictionary(Object *obj)
Object * VipCreateObjectVectorS16(short *val, size_t size)
int VipObjectSetScalar(Object *obj, double val)
Object * VipCreateObjectVectorU8(unsigned char *val, size_t size)
int VipObjectIsIterable(Object *obj)
Object * VipCreateObjectPropertySet()
int VipObjectNext(Object *obj)
Object * VipCreateObjectVectorFloat(float *val, size_t size)
size_t VipObjectSize(Object *obj)
Object * VipCreateObjectVectorU64(unsigned long *val, size_t size)
int VipObjectSetString(Object *obj, const char *val)
int VipObjectSetPropertyDouble(Object *obj, const char *key, double val)
int VipObjectHasProperty(Object *obj, const char *key)
Object * VipCreateObjectVectorU16(unsigned short *val, size_t size)
Object * VipObjectGetIterator(Object *obj)
Object * VipCreateObjectVectorS8(signed char *val, size_t size)
int VipObjectIsNone(Object *obj)
Object * VipCreateObjectVectorDouble(double *val, size_t size)
Object * VipObjectGetArrayItem(Object *obj, int item)
int VipObjectIsDynArray(Object *obj)
Object * VipObjectCurrentValue(Object *obj)
int VipObjectIsArray(Object *obj)
int VipObjectSetProperty(Object *obj, const char *key, Object *val)
double VipObjectGetScalar(Object *obj)
int VipObjectIsScalar(Object *obj)
Object * VipCreateObjectVectorString(const char **val, size_t size)
Object * VipCreateObjectFloat(float val)
Object * VipObjectGetProperty(Object *obj, const char *key)
Object * VipCreateObjectU64(unsigned long val)
int VipObjectResizeArray(Object *obj, size_t size)
int VipObjectInsertArrayItem(Object *obj, int item, Object *val)
int VipObjectSetPropertyString(Object *obj, const char *key, const char *val)
int VipWriteObject(Object *obj, const char *name)
int VipObjectRemoveProperty(Object *obj, const char *key)
int VipObjectIsIterator(Object *obj)
int VipObjectisDictionaryIterator(Object *obj)
Object * VipCreateObjectNone()
Object * VipCreateObjectDouble(double val)
Object * VipReadObject(const char *name)
Object * VipCreateObjectS32(int val)
Object * VipCreateObjectU32(unsigned val)
int VipObjectCopyProperties(Object *obj, Object *source)
int VipObjectSetArrayItem(Object *obj, int item, Object *val)
int VipObjectIsString(Object *obj)
int VipObjectRemoveArrayItem(Object *obj, int item)
Object * VipCreateObjectVectorS32(int *val, size_t size)
int VipFreeObject(Object *obj)
Object * VipCreateObjectS8(signed char val)
Object * VipCreateObjectS64(long val)
Object * VipCreateObjectU16(unsigned short val)
Object * VipCreateObjectS16(short val)
Object * VipCreateObjectString(const char *val)
const char * VipObjectKey(Object *obj)
const char * VipObjectGetString(Object *obj)
int VipObjectClearProperties(Object *obj)
Object * VipCreateObjectVectorU32(unsigned *val, size_t size)