The R Project SVN R

Rev

Rev 59039 | Rev 70250 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 59039 Rev 60256
Line 15... Line 15...
15
 *  You should have received a copy of the GNU Lesser General Public License
15
 *  You should have received a copy of the GNU Lesser General Public License
16
 *  along with this program; if not, a copy is available at
16
 *  along with this program; if not, a copy is available at
17
 *  http://www.r-project.org/Licenses/
17
 *  http://www.r-project.org/Licenses/
18
 */
18
 */
19
 
19
 
-
 
20
/* 
-
 
21
   Not part of the API, subject to change at any time.
-
 
22
*/
-
 
23
 
20
#ifndef R_CALLBACKS_H
24
#ifndef R_CALLBACKS_H
21
#define R_CALLBACKS_H
25
#define R_CALLBACKS_H
22
 
26
 
23
/**
27
/**
24
  These structures are for C (and R function) top-level task handlers.
28
  These structures are for C (and R function) top-level task handlers.
Line 60... Line 64...
60
SEXP R_removeTaskCallback(SEXP which);
64
SEXP R_removeTaskCallback(SEXP which);
61
R_ToplevelCallbackEl* Rf_addTaskCallback(R_ToplevelCallback cb, void *data, void (*finalizer)(void *), const char *name, int *pos);
65
R_ToplevelCallbackEl* Rf_addTaskCallback(R_ToplevelCallback cb, void *data, void (*finalizer)(void *), const char *name, int *pos);
62
 
66
 
63
 
67
 
64
 
68
 
65
/**
69
/*
66
 The following definitions are for callbacks to R functions and methods
70
  The following definitions are for callbacks to R functions and
67
 related to user-level tables. This is currently implemented in a 
71
  methods related to user-level tables.  This was implemented in a
68
 separate package and these declarations allow the package to 
72
  separate package on Omegahat and these declarations allow the package
69
 interface to the internal R code.
73
  to interface to the internal R code.
70
 
74
  
71
 See http://developer.r-project.org/RObjectTables.pdf.
75
  See http://developer.r-project.org/RObjectTables.pdf,
-
 
76
  http://www.omegahat.org/RObjectTables/
72
 */
77
*/
73
 
78
 
74
typedef struct  _R_ObjectTable R_ObjectTable;
79
typedef struct  _R_ObjectTable R_ObjectTable;
75
 
80
 
76
/* Do we actually need the exists() since it is never called but R uses get to see if
81
/* Do we actually need the exists() since it is never called but R
77
   the symbol is bound to anything? */
82
   uses get to see if the symbol is bound to anything? */
78
typedef Rboolean (*Rdb_exists)(const char * const name, Rboolean *canCache, R_ObjectTable *);
83
typedef Rboolean (*Rdb_exists)(const char * const name, Rboolean *canCache, R_ObjectTable *);
79
typedef SEXP     (*Rdb_get)(const char * const name, Rboolean *canCache, R_ObjectTable *);
84
typedef SEXP     (*Rdb_get)(const char * const name, Rboolean *canCache, R_ObjectTable *);
80
typedef int      (*Rdb_remove)(const char * const name, R_ObjectTable *);
85
typedef int      (*Rdb_remove)(const char * const name, R_ObjectTable *);
81
typedef SEXP     (*Rdb_assign)(const char * const name, SEXP value, R_ObjectTable *);
86
typedef SEXP     (*Rdb_assign)(const char * const name, SEXP value, R_ObjectTable *);
82
typedef SEXP     (*Rdb_objects)(R_ObjectTable *);
87
typedef SEXP     (*Rdb_objects)(R_ObjectTable *);