changeset 11100:cdf940db26a0

provide mxIsFunctionHandle MEX interface function
author John W. Eaton <jwe@octave.org>
date Sat, 16 Oct 2010 13:27:18 -0400
parents 65b240770880
children 1f9ab076f5f7
files src/ChangeLog src/mex.cc src/mexproto.h src/mxarray.h.in
diffstat 4 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Oct 16 14:38:57 2010 +0400
+++ b/src/ChangeLog	Sat Oct 16 13:27:18 2010 -0400
@@ -1,3 +1,12 @@
+2010-10-16  John W. Eaton  <jwe@octave.org>
+
+	* mxarray.h.in (mxArray::is_function_handle): New virtual function.
+	* mex.cc (mxArray_base::is_function_handle): New pure virtual function.
+	(mxArray_octave_value::is_function_handle): New function.
+	(mxArray_matlab::is_function_handle): New function.
+	(mxIsFunctionHandle): New function.
+	* mexproto.h (mxIsFunctionHandle): Provide decl.
+
 2010-10-14  John W. Eaton  <jwe@octave.org>
 
 	* sparse.cc: Rename from DLD-FUNCTIONS/sparse.cc.  Include
--- a/src/mex.cc	Sat Oct 16 14:38:57 2010 +0400
+++ b/src/mex.cc	Sat Oct 16 13:27:18 2010 -0400
@@ -141,6 +141,8 @@
 
   int is_double (void) const = 0;
 
+  int is_function_handle (void) const = 0;
+
   int is_int16 (void) const = 0;
 
   int is_int32 (void) const = 0;
@@ -343,6 +345,8 @@
 
   int is_double (void) const { return val.is_double_type (); }
 
+  int is_function_handle (void) const { return val.is_function_handle (); }
+
   int is_int16 (void) const { return val.is_int16_type (); }
 
   int is_int32 (void) const { return val.is_int32_type (); }
@@ -787,6 +791,8 @@
 
   int is_double (void) const { return id == mxDOUBLE_CLASS; }
 
+  int is_function_handle (void) const { return id == mxFUNCTION_CLASS; }
+
   int is_int16 (void) const { return id == mxINT16_CLASS; }
 
   int is_int32 (void) const { return id == mxINT32_CLASS; }
@@ -2649,6 +2655,12 @@
 }
 
 int
+mxIsFunctionHandle (const mxArray *ptr)
+{
+  return ptr->is_function_handle ();
+}
+
+int
 mxIsInt16 (const mxArray *ptr)
 {
   return ptr->is_int16 ();
--- a/src/mexproto.h	Sat Oct 16 14:38:57 2010 +0400
+++ b/src/mexproto.h	Sat Oct 16 13:27:18 2010 -0400
@@ -146,6 +146,7 @@
 extern OCTINTERP_API int mxIsClass (const mxArray *ptr, const char *name);
 extern OCTINTERP_API int mxIsComplex (const mxArray *ptr);
 extern OCTINTERP_API int mxIsDouble (const mxArray *ptr);
+extern OCTINTERP_API int mxIsFunctionHandle (const mxArray *ptr);
 extern OCTINTERP_API int mxIsInt16 (const mxArray *ptr);
 extern OCTINTERP_API int mxIsInt32 (const mxArray *ptr);
 extern OCTINTERP_API int mxIsInt64 (const mxArray *ptr);
--- a/src/mxarray.h.in	Sat Oct 16 14:38:57 2010 +0400
+++ b/src/mxarray.h.in	Sat Oct 16 13:27:18 2010 -0400
@@ -184,6 +184,8 @@
 
   virtual int is_double (void) const { return rep->is_double (); }
 
+  virtual int is_function_handle (void) const { return rep->is_function_handle (); }
+
   virtual int is_int16 (void) const { return rep->is_int16 (); }
 
   virtual int is_int32 (void) const { return rep->is_int32 (); }