source: trunk/lang/matlab/rpLibGetString.cc @ 3177

Last change on this file since 3177 was 3177, checked in by mmc, 9 years ago

Updated all of the copyright notices to reference the transfer to
the new HUBzero Foundation, LLC.

File size: 1.9 KB
Line 
1/*
2 * ----------------------------------------------------------------------
3 *  INTERFACE: Matlab Rappture Library Source
4 *
5 *    [retStr,err] = rpLibGetString(libHandle,path)
6 *
7 * ======================================================================
8 *  AUTHOR:  Derrick Kearney, Purdue University
9 *  Copyright (c) 2004-2012  HUBzero Foundation, LLC
10 *
11 *  See the file "license.terms" for information on usage and
12 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13 * ======================================================================
14 */
15
16#include "RpMatlabInterface.h"
17
18/**********************************************************************/
19// METHOD: [retStr,err] = rpLibGetString(libHandle,path)
20/// Query the value of a node.
21/**
22 * Clients use this to query the value of a node.  If the path
23 * is not specified, it returns the value associated with the
24 * root node.  Otherwise, it returns the value for the element
25 * specified by the path. Values are returned as strings.
26 *
27 * Error code, err=0 on success, anything else is failure.
28 */
29
30void mexFunction(int nlhs, mxArray *plhs[],
31                 int nrhs, const mxArray *prhs[])
32{
33    int         libIndex    = 0;
34    int         retLibIndex = 0;
35    int         err         = 1;
36    RpLibrary*  lib         = NULL;
37    std::string path        = "";
38    std::string retStr      = "";
39
40    /* Check for proper number of arguments. */
41    if (nrhs != 2) {
42        mexErrMsgTxt("Two input required.");
43    }
44
45    libIndex = getIntInput(prhs[0]);
46    path = getStringInput(prhs[1]);
47
48    /* Call the C subroutine. */
49    if ( (libIndex > 0) && (!path.empty()) ) {
50        lib = (RpLibrary*) getObject_Void(libIndex);
51
52        if (lib) {
53            retStr = lib->getString(path);
54            err = 0;
55        }
56    }
57
58    /* Set C-style string output_buf to MATLAB mexFunction output*/
59    plhs[0] = mxCreateString(retStr.c_str());
60    plhs[1] = mxCreateDoubleScalar(err);
61
62    return;
63}
Note: See TracBrowser for help on using the repository browser.