SSM

include/ssm.h

Go to the documentation of this file.
00001 
00006 #ifndef __SSM_H__
00007 #define __SSM_H__
00008 
00009 
00010 
00011 //#include <stdint.h>
00012 #ifndef __GNUC__
00013 #  define  __attribute__(x)  /*NOTHING*/
00014 #endif
00015 
00016 #include "ssm-time.h"
00017 
00018 #ifdef __cplusplus
00019 extern "C"
00020 {
00021 #endif
00022 
00025 
00026 #define SSM_SNAME_MAX 32                        
00027 #define createSSM_time(n,u,s,l,c) createSSM(n,u,s,l,c)
00028 
00034     typedef
00035     enum
00036     {
00037         SSM_READ = 0x20,                            
00038         SSM_WRITE = 0x40,                           
00039         SSM_EXCLUSIVE = 0x80,                       
00040         SSM_MODE_MASK = 0xe0                        
00041     } SSM_open_mode;
00042 
00046     enum
00047     {
00048         SSM_ERROR_FUTURE = -1,                      
00049         SSM_ERROR_PAST = -2,                        
00050         SSM_ERROR_NO_DATA = -3                      
00051     };
00052 
00053     typedef char *SSM_sid;                      
00054     typedef int SSM_tid;                        
00056     /* ---- function prototypes ---- */
00057 
00061     void errSSM( void );
00062 
00063     /* system */
00072     int initSSM( void );
00073 
00081     int endSSM( void );
00082     
00083     /* open */
00107     SSM_sid createSSM( const char *stream_name, int stream_id, size_t stream_size, ssmTimeT life, ssmTimeT cycle ) __attribute__ ((warn_unused_result));
00108     
00118     int releaseSSM( SSM_sid *sid );
00119     
00133     SSM_sid openSSM( const char *stream_name, int stream_id, char open_mode ) __attribute__ ((warn_unused_result));
00134 
00144     int closeSSM( SSM_sid *sid );
00145 
00146     /* tid */
00156     SSM_tid getTID( SSM_sid sid, ssmTimeT ytime );
00157     
00163     SSM_tid getTID_top( SSM_sid sid );
00164     
00170     SSM_tid getTID_bottom( SSM_sid sid );
00171     
00183     int waitTID( SSM_sid sid, SSM_tid tid );
00184 
00185     /* read */
00198     SSM_tid readSSM( SSM_sid sid, void *data, ssmTimeT * ytime, SSM_tid tid ) __attribute__ ((warn_unused_result));
00199 
00210     SSM_tid readSSM_time( SSM_sid sid, void *data, ssmTimeT ytime, ssmTimeT * ret_time ) __attribute__ ((warn_unused_result));
00211     
00212     /* read with callback function */
00213     SSM_tid readSSMP( SSM_sid sid, void *adata, ssmTimeT * ytime, SSM_tid tid,
00214         void (*callback)( const void *ssmp, void *data, void *user_data ), void *user_data ) __attribute__ ((warn_unused_result));
00215     SSM_tid readSSMP_time( SSM_sid sid, void *adata, ssmTimeT ytime, ssmTimeT *ret_time ,
00216         void (*callback)( const void *ssmp, void *data, void *user_data ), void *user_data ) __attribute__ ((warn_unused_result));
00217 
00218     /* write */
00226     SSM_tid writeSSM_time( SSM_sid sid, const void *data, ssmTimeT ytime );
00227 
00232     SSM_tid writeSSM( SSM_sid sid, const void *data, ssmTimeT ytime );
00233     
00234     /* write with callback function */
00235     SSM_tid writeSSMP( SSM_sid sid, const void *adata, ssmTimeT ytime ,
00236          void (*callback)( void *ssmp, const void *data, void *user_data ), void *user_data );
00237     SSM_tid writeSSMP_time( SSM_sid sid, const void *adata, ssmTimeT ytime ,
00238         void (*callback)( void *ssmp, const void *data, void *user_data ), void *user_data );
00239 
00240     /* property */
00252     int set_propertySSM( const char *stream_name, int stream_id, const void *data, size_t size );
00253 
00262     int get_propertySSM( const char *stream_name, int stream_id, void *data );
00263 
00264     /* others */
00265     int getSSM_num( void );
00266     int getSSM_name( int n, char *stream_name, int *stream_id, size_t *size );
00267     int getSSM_info( const char *stream_name, int stream_id, size_t *size, int *num, double *cycle, size_t *property_size );
00268     
00273     int damp( SSM_sid sid, int mode, int num );
00274 
00277 #ifdef __cplusplus
00278 }
00279 #endif
00280 
00281 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines