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/bag.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<Bag> methods; 00038 if (!methods.initialize()) { 00039 methods 00040 .add("open", &Bag::open) 00041 .add("close", &Bag::close) 00042 .add("write", &Bag::write) 00043 .add("data", &Bag::data) 00044 00045 .add("getFileName", &Bag::getFileName) 00046 .add("getMode", &Bag::getMode) 00047 .add("getMajorVersion", &Bag::getMajorVersion) 00048 .add("getMinorVersion", &Bag::getMinorVersion) 00049 .add("getSize", &Bag::getSize) 00050 .add("setCompression", &Bag::setCompression) 00051 .add("getCompression", &Bag::getCompression) 00052 .add("setChunkThreshold", &Bag::setChunkThreshold) 00053 .add("getChunkThreshold", &Bag::getChunkThreshold) 00054 .throwOnUnknown(); 00055 } 00056 00057 try { 00058 mexClassHelper<Bag>(nlhs, plhs, nrhs, prhs, methods); 00059 } catch (Exception& e) { 00060 mexErrMsgTxt(e.what()); 00061 } 00062 }