00001 //================================================================================================= 00002 // Copyright (c) 2013, Johannes Meyer, TU Darmstadt 00003 // All rights reserved. 00004 00005 // Redistribution and use in source and binary forms, with or without 00006 // modification, are permitted provided that the following conditions are met: 00007 // * Redistributions of source code must retain the above copyright 00008 // notice, this list of conditions and the following disclaimer. 00009 // * Redistributions in binary form must reproduce the above copyright 00010 // notice, this list of conditions and the following disclaimer in the 00011 // documentation and/or other materials provided with the distribution. 00012 // * Neither the name of the Flight Systems and Automatic Control group, 00013 // TU Darmstadt, nor the names of its contributors may be used to 00014 // endorse or promote products derived from this software without 00015 // specific prior written permission. 00016 00017 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00018 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00019 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00020 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 00021 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00022 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00023 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00024 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00025 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00026 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00027 //================================================================================================= 00028 00029 #include <rosmatlab/mex.h> 00030 #include <rosmatlab/rosbag/view.h> 00031 00032 using namespace rosmatlab; 00033 using namespace rosmatlab::rosbag; 00034 00035 void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 00036 { 00037 static MexMethodMap<View> methods; 00038 if (!methods.initialize()) { 00039 methods 00040 .add("addQuery", &View::addQuery) 00041 00042 .add("reset", &View::reset) 00043 .add("start", &View::start) 00044 .add("valid", &View::valid) 00045 .add("eof", &View::eof) 00046 .add("increment", &View::increment) 00047 00048 .add("get", &View::get) 00049 .add("data", &View::data) 00050 .add("next", &View::next) 00051 00052 .add("getSize", &View::getSize) 00053 .add("getTime", &View::getTime) 00054 .add("getTopic", &View::getTopic) 00055 .add("getDataType", &View::getDataType) 00056 .add("getMD5Sum", &View::getMD5Sum) 00057 .add("getMessageDefinition", &View::getMessageDefinition) 00058 .add("getConnectionHeader", &View::getConnectionHeader) 00059 .add("getCallerId", &View::getCallerId) 00060 .add("isLatching", &View::isLatching) 00061 00062 .add("getQueries", &View::getQueries) 00063 .add("getConnections", &View::getConnections) 00064 .add("getBeginTime", &View::getBeginTime) 00065 .add("getEndTime", &View::getEndTime) 00066 .throwOnUnknown(); 00067 } 00068 00069 try { 00070 mexClassHelper<View>(nlhs, plhs, nrhs, prhs, methods); 00071 } catch (Exception& e) { 00072 mexErrMsgTxt(e.what()); 00073 } 00074 }