[go: up one dir, main page]

Menu

[966d29]: / module / swig / ow.i  Maximize  Restore  History

Download this file

107 lines (84 with data), 2.0 kB

  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
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
/* File: ow.i */
%module OW
%include "typemaps.i"
%init %{
API_setup(program_type_swig) ;
%}
%{
#include "config.h"
#include "owfs_config.h"
#include "ow.h"
// define this to add debug-output from newer swig-versions.
//#define SWIGRUNTIME_DEBUG 1
// Opposite of internal code
#define SWIG_BAD 0
#define SWIG_GOOD 1
char *version( )
{
return VERSION;
}
int init( const char * dev )
{
if ( BAD(API_init(dev, restart_if_repeat)) ) {
return SWIG_BAD ; // error
}
return SWIG_GOOD ;
}
int put( const char * path, const char * value )
{
int ret = SWIG_BAD ; /* bad result */
if ( API_access_start() == 0 ) {
if ( value!=NULL) {
if ( FS_write( path, value, strlen(value), 0 ) >= 0 ) {
ret = SWIG_GOOD ; // success
}
}
API_access_end() ;
}
return ret ;
}
/*
Get a directory, returning a copy of the contents in *buffer (which must be free-ed elsewhere)
*buffer will be returned as NULL on error
Also functions as a read
*/
char * get( const char * path )
{
char * return_buffer = NULL ;
if ( API_access_start() == 0 ) {
FS_get( path, &return_buffer, NULL ) ;
API_access_end() ;
}
return return_buffer ;
}
void finish( void ) {
API_finish() ;
}
void set_error_print(int val) {
Globals.error_print = val;
}
int get_error_print(void) {
return Globals.error_print;
}
void set_error_level(int val) {
Globals.error_level = val;
}
int get_error_level(void) {
return Globals.error_level;
}
int opt(const char option_char, const char *arg) {
return GOOD( owopt(option_char, arg) ) ? 0 : 1 ;
}
%}
%typemap(newfree) char * { if ($1) free($1) ; }
%newobject get ;
extern char *version( );
extern int init( const char * dev ) ;
extern char * get( const char * path ) ;
extern int put( const char * path, const char * value ) ;
extern void finish( void ) ;
extern void set_error_print(int);
extern int get_error_print(void);
extern void set_error_level(int);
extern int get_error_level(void);
extern int opt(const char, const char *);