diff --git a/Cantera/matlab/cantera/@Kinetics/private/delkinetics.cpp b/Cantera/matlab/cantera/@Kinetics/private/delkinetics.cpp deleted file mode 100644 index be6c3427c..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/delkinetics.cpp +++ /dev/null @@ -1,22 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - /* - * Create a Cantera 'Kinetics' object - */ - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int k = getInt(prhs[0]); - int ok = delKinetics(k); - - // Create matrix for the return argument. - plhs[0] = mxCreateDoubleMatrix(1,1, mxREAL); - double* x = mxGetPr(plhs[0]); - *x = ok; - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/isrev.cpp b/Cantera/matlab/cantera/@Kinetics/private/isrev.cpp deleted file mode 100755 index 374964eda..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/isrev.cpp +++ /dev/null @@ -1,19 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - double vv; - int kin = getInt(prhs[0]); - int irxn = getInt(prhs[1]); - vv = kin_isReversible(kin,irxn-1); - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = vv; - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/kin_get.cpp b/Cantera/matlab/cantera/@Kinetics/private/kin_get.cpp deleted file mode 100755 index 97e79a496..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/kin_get.cpp +++ /dev/null @@ -1,35 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - double vv; - int kin = getInt(prhs[0]); - int job = getInt(prhs[1]); - int irxn = getInt(prhs[2]); - - bool ok = true; - switch (job) { - - case 1: - vv = kin_nReactions(kin); break; - case 2: - vv = kin_multiplier(kin, irxn-1); break; - case 3: - vv = kin_nSpecies(kin); break; - default: - ok = false; - } - if (ok) { - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = vv; - return; - } - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/kin_set.cpp b/Cantera/matlab/cantera/@Kinetics/private/kin_set.cpp deleted file mode 100755 index d61f6feb5..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/kin_set.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -#include "mex.h" -#include "../../private/ctmatutils.h" -#include "../../../../clib/src/ct.h" - -extern "C" { - - void reportError() { - int buflen = 300; - char* output_buf = (char*)mxCalloc(buflen, sizeof(char)); - getCanteraError(buflen, output_buf); - mexErrMsgTxt(output_buf); - } - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) { - // try { - double vv; - int kin = getInt(prhs[0]); - int job = getInt(prhs[1]); - int irxn = getInt(prhs[2]); - double* ptr = mxGetPr(prhs[3]); - int m = mxGetM(prhs[3]); - int n = mxGetN(prhs[3]); - - // set scalar attributes - int iok = -1; - if (job < 10) { - if (m != 1 || n != 1) - mexErrMsgTxt("value must be scalar."); - - switch (job) { - case 1: - iok = kin_setMultiplier(kin,irxn-1,*ptr); break; - default: - iok = -1; - } - } - if (iok < 0) mexErrMsgTxt("error in kin_set."); - // } - //catch (...) { - // reportError(); - // mexErrMsgTxt("exception in kin_set."); - // return; - // } - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/newkinetics.cpp b/Cantera/matlab/cantera/@Kinetics/private/newkinetics.cpp deleted file mode 100755 index 24fe22188..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/newkinetics.cpp +++ /dev/null @@ -1,33 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - /* - * Create a Cantera 'Kinetics' object - */ - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - // Check for proper number of arguments - if(nrhs != 4) { - mexErrMsgTxt("Four inputs required."); - } - else if(nlhs > 1) { - mexErrMsgTxt("Too many output arguments"); - } - - int root = getInt(prhs[0]); - int iph = getInt(prhs[1]); - int in1 = getInt(prhs[2]); - int in2 = getInt(prhs[3]); - int n = newKineticsFromXML(root, iph, in1, in2); - - // Create matrix for the return argument. - plhs[0] = mxCreateDoubleMatrix(1,1, mxREAL); - double* x = mxGetPr(plhs[0]); - *x = n; - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/production.cpp b/Cantera/matlab/cantera/@Kinetics/private/production.cpp deleted file mode 100755 index be471ebee..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/production.cpp +++ /dev/null @@ -1,32 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int kin = getInt(prhs[0]); - int nsp = getInt(prhs[1]); - int job = getInt(prhs[2]); - plhs[0] = mxCreateNumericMatrix(nsp,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - int ok = -10; - switch (job) { - case 0: - ok = kin_getCreationRates(kin,nsp,h); break; - case 1: - ok = kin_getDestructionRates(kin,nsp,h); break; - case 2: - ok = kin_getNetProductionRates(kin,nsp,h); break; - case 3: - ok = kin_getSourceTerms(kin, nsp, h); break; - default: - ; - } - if (ok < 0) - mexErrMsgTxt("error computing production rates"); - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/pstoich.cpp b/Cantera/matlab/cantera/@Kinetics/private/pstoich.cpp deleted file mode 100755 index 0e618421a..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/pstoich.cpp +++ /dev/null @@ -1,20 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - double vv; - int kin = getInt(prhs[0]); - int isp = getInt(prhs[1]); - int irxn = getInt(prhs[2]); - vv = kin_productStoichCoeff(kin,irxn-1,isp-1); - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = vv; - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/rop.cpp b/Cantera/matlab/cantera/@Kinetics/private/rop.cpp deleted file mode 100755 index eaa2380f6..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/rop.cpp +++ /dev/null @@ -1,32 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int kin = getInt(prhs[0]); - int job = getInt(prhs[1]); - int nr = kin_nReactions(kin); - plhs[0] = mxCreateNumericMatrix(nr,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - int ok = -10; - switch (job) { - case 0: - ok = kin_getFwdRatesOfProgress(kin,nr,h); break; - case 1: - ok = kin_getRevRatesOfProgress(kin,nr,h); break; - case 2: - ok = kin_getNetRatesOfProgress(kin,nr,h); break; - case 3: - ok = kin_getEquilibriumConstants(kin,nr,h); break; - default: - ; - } - if (ok < 0) - mexErrMsgTxt("error computing rates of progress"); - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/rstoich.cpp b/Cantera/matlab/cantera/@Kinetics/private/rstoich.cpp deleted file mode 100755 index 3ba3efec2..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/rstoich.cpp +++ /dev/null @@ -1,20 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - double vv; - int kin = getInt(prhs[0]); - int isp = getInt(prhs[1]); - int irxn = getInt(prhs[2]); - vv = kin_reactantStoichCoeff(kin,irxn-1,isp-1); - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = vv; - } -} diff --git a/Cantera/matlab/cantera/@Kinetics/private/rxnstring.cpp b/Cantera/matlab/cantera/@Kinetics/private/rxnstring.cpp deleted file mode 100755 index db5b5cbef..000000000 --- a/Cantera/matlab/cantera/@Kinetics/private/rxnstring.cpp +++ /dev/null @@ -1,25 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int kin = getInt(prhs[0]); - int irxn = getInt(prhs[1]); - char* buf; - int buflen = 80; - buf = (char*)mxCalloc(buflen, sizeof(char)); - int iok = kin_getReactionString(kin, irxn-1, buflen, buf); - if (iok >= 0) { - plhs[0] = mxCreateString(buf); - return; - } - else { - mexErrMsgTxt("error getting reaction string"); - } - } -} diff --git a/Cantera/matlab/cantera/@Reactor/private/reactormethods.cpp b/Cantera/matlab/cantera/@Reactor/private/reactormethods.cpp deleted file mode 100644 index 4761c116c..000000000 --- a/Cantera/matlab/cantera/@Reactor/private/reactormethods.cpp +++ /dev/null @@ -1,130 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ctreactor.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -const double Undef = -999.123; - -extern "C" { - - - void reportError() { - int buflen = 300; - char* output_buf = (char*)mxCalloc(buflen, sizeof(char)); - getCanteraError(buflen, output_buf); - mexErrMsgTxt(output_buf); - } - - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int j, m, iok, n; - char *file, *key, *val; - - int job = getInt(prhs[0]); - int i = getInt(prhs[1]); - - double r = Undef; - double v = Undef; - if (nrhs > 2) v = getDouble(prhs[2]); - - // constructor - if (job == 0) { - n = reactor_new(i); - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(n); - if (n < 0) reportError(); - return; - } - - // options that do not return a value - - if (job < 20) { - switch (job) { - - case 1: - iok = reactor_del(i); - break; - case 2: - iok = reactor_copy(i); - break; - case 3: - iok = reactor_assign(i,int(v)); - break; - case 4: - iok = reactor_setInitialVolume(i, v); - break; - case 5: - iok = reactor_setInitialTime(i, v); - break; - case 6: - iok = reactor_setThermoMgr(i, int(v)); - break; - case 7: - iok = reactor_setKineticsMgr(i, int(v)); - break; - case 8: - iok = reactor_advance(i, v); - break; - case 9: - iok = reactor_setEnergy(i, int(v)); - break; - default: - mexErrMsgTxt("unknown job parameter"); - } - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(iok); - if (iok < 0) reportError(); - return; - } - - - // options that return a value of type 'double' - - else if (job < 40) { - switch (job) { - case 21: - r = reactor_step(i, v); - break; - case 22: - r = reactor_time(i); - break; - case 23: - r = reactor_mass(i); - break; - case 24: - r = reactor_volume(i); - break; - case 25: - r = reactor_density(i); - break; - case 26: - r = reactor_temperature(i); - break; - case 27: - r = reactor_enthalpy_mass(i); - break; - case 28: - r = reactor_intEnergy_mass(i); - break; - case 29: - r = reactor_pressure(i); - break; - case 30: - r = reactor_massFraction(i, int(v)); - break; - default: - mexErrMsgTxt("unknown job parameter"); - } - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = r; - if (r == Undef) reportError(); - return; - } - } -} diff --git a/Cantera/matlab/cantera/@Transport/private/newTransport.cpp b/Cantera/matlab/cantera/@Transport/private/newTransport.cpp deleted file mode 100755 index 7d25cbec0..000000000 --- a/Cantera/matlab/cantera/@Transport/private/newTransport.cpp +++ /dev/null @@ -1,54 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -extern "C" { - - static void reportError() { - int buflen = 300; - char* output_buf = (char*)mxCalloc(buflen, sizeof(char)); - getCanteraError(buflen, output_buf); - mexErrMsgTxt(output_buf); - } - - /* - * Create a Cantera 'Transport' object - */ - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - try { - - // Check for proper number of arguments - if(nrhs != 3) { - mexErrMsgTxt("Three inputs required."); - } - else if(nlhs > 1) { - mexErrMsgTxt("Too many output arguments"); - } - - //int model = getInt(prhs[0]); - int ph = getInt(prhs[1]); - int loglevel = getInt(prhs[2]); - - int buflen = (mxGetM(prhs[0]) * mxGetN(prhs[0])) + 1; - char* model = (char*)mxCalloc(buflen, sizeof(char)); - int status = mxGetString(prhs[0],model,buflen); - if (status != 0) - mexErrMsgTxt("error reading model."); - - int n = newTransport(model, ph, loglevel); - if (n < 0) mexErrMsgTxt("Unknown transport model"); - - // Create matrix for the return argument. - plhs[0] = mxCreateDoubleMatrix(1,1, mxREAL); - double* x = mxGetPr(plhs[0]); - *x = n; - } - catch (...) { - reportError(); - //mexErrMsgTxt("exception raised in newTransport."); - } - } -} diff --git a/Cantera/matlab/cantera/@Transport/private/trans_methods.cpp b/Cantera/matlab/cantera/@Transport/private/trans_methods.cpp deleted file mode 100755 index 0faaad75a..000000000 --- a/Cantera/matlab/cantera/@Transport/private/trans_methods.cpp +++ /dev/null @@ -1,82 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" -#include - -extern "C" { - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - double vv; - int n = getInt(prhs[0]); - int job = getInt(prhs[1]); - double* h; - int iok = 0; - int nsp; - - if (job < 10) { - - bool ok = true; - switch (job) { - case 0: - delTransport(n); - vv = 0.0; - break; - case 1: - vv = trans_viscosity(n); - break; - case 2: - vv = trans_thermalConductivity(n); break; - default: - mexErrMsgTxt("unknown Transport method"); - } - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - h = mxGetPr(plhs[0]); - *h = vv; - return; - } - else if (job < 20) { - nsp = getInt(prhs[2]); - plhs[0] = mxCreateNumericMatrix(nsp,1,mxDOUBLE_CLASS,mxREAL); - h = mxGetPr(plhs[0]); - - switch (job) { - case 11: - iok = trans_getMixDiffCoeffs(n, nsp, h); break; - case 12: - iok = trans_getThermalDiffCoeffs(n, nsp, h); break; - default: - mexErrMsgTxt("unknown Transport method"); - } - } - else if (job < 30) { - nsp = getInt(prhs[2]); - plhs[0] = mxCreateNumericMatrix(nsp,nsp,mxDOUBLE_CLASS,mxREAL); - h = mxGetPr(plhs[0]); - switch (job) { - case 21: - iok = trans_getBinDiffCoeffs(n, nsp, h); break; - case 22: - iok = trans_getMultiDiffCoeffs(n, nsp, h); break; - default: - mexErrMsgTxt("unknown Transport method"); - } - } - else { - mexErrMsgTxt("unknown Transport method"); - } - if (iok < 0) { - if (iok == -1) { - int buflen = 80; - char* buf = (char*)mxCalloc(buflen, sizeof(char)); - getCanteraError(buflen, buf); - mexErrMsgTxt(buf); - } - else { - mexErrMsgTxt("exception thrown."); - } - } - } -} diff --git a/Cantera/matlab/cantera/@Wall/private/wallmethods.cpp b/Cantera/matlab/cantera/@Wall/private/wallmethods.cpp deleted file mode 100644 index 9129070db..000000000 --- a/Cantera/matlab/cantera/@Wall/private/wallmethods.cpp +++ /dev/null @@ -1,116 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ctreactor.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - -const double Undef = -999.123; - -extern "C" { - - - void reportError() { - int buflen = 300; - char* output_buf = (char*)mxCalloc(buflen, sizeof(char)); - getCanteraError(buflen, output_buf); - mexErrMsgTxt(output_buf); - } - - - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int j, m, iok, n; - char *file, *key, *val; - - int job = getInt(prhs[0]); - int i = getInt(prhs[1]); - - double r = Undef; - double v = Undef; - if (nrhs > 2) v = getDouble(prhs[2]); - - // constructor - if (job == 0) { - n = wall_new(i); - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(n); - if (n < 0) reportError(); - return; - } - - // options that do not return a value - - if (job < 20) { - switch (job) { - - case 1: - iok = wall_del(i); - break; - case 2: - iok = wall_copy(i); - break; - case 3: - iok = wall_assign(i,int(v)); - break; - case 4: - m = getInt(prhs[3]); - iok = wall_install(i, int(v), m); - break; - case 5: - iok = wall_setArea(i, v); - break; - case 6: - iok = wall_setThermalResistance(i, v); - break; - case 7: - iok = wall_setHeatTransferCoeff(i, v); - break; - case 8: - iok = wall_setHeatFlux(i, int(v)); - break; - case 9: - iok = wall_setExpansionRateCoeff(i, v); - break; - case 10: - iok = wall_setExpansionRate(i, int(v)); - break; - case 11: - iok = wall_ready(i); - break; - default: - mexErrMsgTxt("unknown job parameter"); - } - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(iok); - if (iok < 0) reportError(); - return; - } - - - // options that return a value of type 'double' - - else if (job < 40) { - switch (job) { - case 21: - r = wall_vdot(i, v); - break; - case 22: - r = wall_Q(i, v); - break; - case 23: - r = wall_area(i); - break; - default: - mexErrMsgTxt("unknown job parameter"); - } - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = r; - if (r == Undef) reportError(); - return; - } - } -} diff --git a/Cantera/matlab/cantera/@XML_Node/private/newxml.cpp b/Cantera/matlab/cantera/@XML_Node/private/newxml.cpp deleted file mode 100644 index 6c4e4ec4d..000000000 --- a/Cantera/matlab/cantera/@XML_Node/private/newxml.cpp +++ /dev/null @@ -1,34 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ctxml.h" -#include "../../private/ctmatutils.h" - - -extern "C" { - - /* - * Create a Cantera 'XML_Node' object - */ - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - // Check for proper number of arguments - if(nrhs != 1) { - mexErrMsgTxt("One input required."); - } - else if(nlhs > 1) { - mexErrMsgTxt("Too many output arguments"); - } - char* input_buf = getString(prhs[0]); - int id = 0; - //try { - id = xml_new(input_buf); - //} - //catch (...) { - //mexErrMsgTxt("exception occurred"); - //} - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(id); - } -} diff --git a/Cantera/matlab/cantera/@XML_Node/private/xmlmethods.cpp b/Cantera/matlab/cantera/@XML_Node/private/xmlmethods.cpp deleted file mode 100644 index da2d4b725..000000000 --- a/Cantera/matlab/cantera/@XML_Node/private/xmlmethods.cpp +++ /dev/null @@ -1,158 +0,0 @@ - -#include "mex.h" -#include "../../../../clib/src/ctxml.h" -#include "../../../../clib/src/ct.h" -#include "../../private/ctmatutils.h" - - -extern "C" { - - static bool nargs_ok(int job, int n) { - switch (n) { - case 1: case 2: case 10: case 21: case 22: - return (n == 2); - case 3: case 4: case 6: case 7: case 8: case 9: - case 13: case 14: case 20: - return (n == 3); - case 5: case 11: case 12: - return (n == 4); - default: - return true; - } - } - - static void reportError() { - int buflen = 300; - char* output_buf = (char*)mxCalloc(buflen, sizeof(char)); - getCanteraError(buflen, output_buf); - mexErrMsgTxt(output_buf); - } - - - /* - * Create a Cantera 'XML_Node' object - */ - void mexFunction( int nlhs, mxArray *plhs[], - int nrhs, const mxArray *prhs[] ) - { - int j, m, iok, id; - char *file, *key, *val, *nm; - - int job = getInt(prhs[0]); - int i = getInt(prhs[1]); - - // Check for proper number of arguments - if (!nargs_ok(job,nrhs)) { - mexErrMsgTxt("Wrong number of inputs."); - return; - } - else if(nlhs > 1) { - mexErrMsgTxt("Too many output arguments"); - } - - - // options that do not return a value - - if (job < 20) { - switch (job) { - case 0: - nm = getString(prhs[2]); - iok = xml_new(nm); - break; - case 1: - iok = xml_del(i); - break; - case 2: - iok = xml_copy(i); - break; - case 3: - j = getInt(prhs[2]); - iok = xml_assign(i,j); - break; - case 4: - file = getString(prhs[2]); - iok = xml_build(i, file); - break; - case 5: - key = getString(prhs[2]); - val = getString(prhs[3]); - iok = xml_addAttrib(i, key, val); - break; - case 6: - key = getString(prhs[2]); - iok = xml_child(i, key); - break; - case 7: - m = getInt(prhs[2]); - iok = xml_child_bynumber(i, m); - break; - case 8: - key = getString(prhs[2]); - iok = xml_findID(i, key); - break; - case 9: - key = getString(prhs[2]); - iok = xml_findByName(i, key); - break; - case 10: - iok = xml_nChildren(i); - break; - case 11: - key = getString(prhs[2]); - val = getString(prhs[3]); - iok = xml_addChild(i, key, val); - break; - case 12: - key = getString(prhs[2]); - j = getInt(prhs[3]); - iok = xml_addChildNode(i, j); - break; - case 13: - file = getString(prhs[2]); - iok = xml_write(i, file); - break; - case 14: - j = getInt(prhs[2]); - iok = xml_removeChild(i, j); - break; - - default: - mexErrMsgTxt("unknown job parameter"); - } - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(iok); - if (iok < 0) reportError(); - return; - } - - // options that return strings - - char* v = (char*)mxCalloc(80, sizeof(char)); - switch (job) { - case 20: - // return an attribute - key = getString(prhs[2]); - iok = xml_attrib(i, key, v); - break; - case 21: - // return the value of the node - iok = xml_value(i, v); - break; - case 22: - iok = xml_tag(i, v); - break; - default: - mexErrMsgTxt("unknown job parameter"); - } - if (iok < 0) { - plhs[0] = mxCreateNumericMatrix(1,1,mxDOUBLE_CLASS,mxREAL); - double *h = mxGetPr(plhs[0]); - *h = double(iok); - if (iok < 0) reportError(); - } - else { - plhs[0] = mxCreateString(v); - } - } -}