CVR-Lib last update 20 Sep 2009

cvrResizeType.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 1998 - 2004
00003  * Lehrstuhl fuer Technische Informatik, RWTH-Aachen, Germany
00004  *
00005  *
00006  * This file is part of the Computer Vision and Robotics Library (CVR-Lib)
00007  *
00008  * The CVR-Lib is free software; you can redistribute it and/or
00009  * modify it under the terms of the BSD License.
00010  *
00011  * All rights reserved.
00012  *
00013  * Redistribution and use in source and binary forms, with or without
00014  * modification, are permitted provided that the following conditions are met:
00015  *
00016  * 1. Redistributions of source code must retain the above copyright notice,
00017  *    this list of conditions and the following disclaimer.
00018  *
00019  * 2. Redistributions in binary form must reproduce the above copyright notice,
00020  *    this list of conditions and the following disclaimer in the documentation
00021  *    and/or other materials provided with the distribution.
00022  *
00023  * 3. Neither the name of the authors nor the names of its contributors may be
00024  *    used to endorse or promote products derived from this software without
00025  *    specific prior written permission.
00026  *
00027  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00028  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00029  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00030  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00031  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00032  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00033  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00034  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00035  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00036  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00037  * POSSIBILITY OF SUCH DAMAGE.
00038  */
00039 
00040 
00041 
00042 /**
00043  * \file   cvrResizeType.h
00044  *         Contains the enum eResizeType which provides global
00045  *         constants to control the behaviour of resize methods. The
00046  *         appropriate read and write functions are also defined.
00047  * \author Peter Doerfler
00048  * \date   29.11.2004
00049  * $Id: cvrResizeType.h,v 1.5 2007/04/18 21:13:40 alvarado Exp $
00050  */
00051 
00052 #ifndef _CVR_RESIZE_TYPE_H_
00053 #define _CVR_RESIZE_TYPE_H_
00054 
00055 #include "cvrIoHandler.h"
00056 
00057 namespace cvr {
00058 
00059   /**
00060    * The resize type defines the behaviour of resize member functions found in
00061    * many containers and other data structures. In most cases the default is
00062    * Copy, to be compliant with the STL.  Different functions: allocate() and
00063    * assign() are shortcuts for resize with OnlyAllocate or Init.
00064    *
00065    * For this type the methods read(ioHandler&, eResizeType&) and
00066    * write(ioHandler&, const eResizeType&) are implemented. Note
00067    * that template functions read(ioHandler&, const std::string&, T&)
00068    * and write(ioHandler&, const std::string&, const T&) exist. (see
00069    * Developer's Guide for further information).
00070    *
00071    * @ingroup gTypes
00072    */
00073   enum eResizeType {
00074     AllocateOnly, /**< Memory is allocated only, old values are not copied to
00075                        the new container and new fields are not initialized */
00076     Copy,         /**< Old values are copied to the resized container but
00077                        possibly existing new elements are not initialized */
00078     Init ,        /**< The resized container is completely filled with the
00079                        given init value.*/
00080     CopyAndInit   /**< The old data is copied to the resized container and new
00081                        elements (if existent) are initialized with the
00082                        init value*/
00083   };
00084 
00085   /**
00086    * Read function for eResizeType.
00087    *
00088    * @ingroup gStorable
00089    */
00090   bool read(ioHandler& handler,eResizeType& data);
00091 
00092   /**
00093    * Write function for eResizeType.
00094    *
00095    * @ingroup gStorable
00096    */
00097   bool write(ioHandler& handler,const eResizeType& data);
00098 
00099 
00100 }
00101 #endif

Generated on Sun Sep 20 22:08:00 2009 for CVR-Lib by Doxygen 1.5.8