//# Utilities.h: Bag of unrelated classes and groups for general use. //# Copyright (C) 1995,1996,1997,2000,2001 //# Associated Universities, Inc. Washington DC, USA. //# //# This library is free software; you can redistribute it and/or modify it //# under the terms of the GNU Library General Public License as published by //# the Free Software Foundation; either version 2 of the License, or (at your //# option) any later version. //# //# This library is distributed in the hope that it will be useful, but WITHOUT //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public //# License for more details. //# //# You should have received a copy of the GNU Library General Public License //# along with this library; if not, write to the Free Software Foundation, //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. //# //# Correspondence concerning AIPS++ should be addressed as follows: //# Internet email: aips2-request@nrao.edu. //# Postal address: AIPS++ Project Office //# National Radio Astronomy Observatory //# 520 Edgemont Road //# Charlottesville, VA 22903-2475 USA //# //# $Id$ #ifndef CASA_UTILITIES_H #define CASA_UTILITIES_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace casacore { //# NAMESPACE CASACORE - BEGIN // // // Classes and global functions for general use // // // // // This module is a bag of unrelated mini-modules, classes and // global functions. The following functional groups can be recognized: //
    //
  • Object utilities: //
      //
    • ObjCompare // objects with each other. A signature for comparison functions // is defined (required for comparison functions used in the // Sort // class), and one such function is provided. //
    • objcopy/objmove/objset // copies objects from one place to another. //
    • Mark // objects as valid or invalid. //
    • Notices // provide basic support for shared access of data by various objects. //
    • Sort // objects on one or more keys, in ascending or descending order. // Fast sorting // is provided for certain types of objects. //
    • Binary Search // templated functions for sorted containers (ascending or descending // order) are available. //
    • Linear Search // templated functions for unsorted containers are available. //
    //
  • Logical utilities: //
      //
    • Assertion // lets you throw an error when a condition in not fullfilled. //
    • Bit vectors // are an efficient method to keep True/False information on a set of // items or conditions. //
    //
  • Pointer utilities //
      //
    • Counted pointers // provide support for reference counting. //
    • Pointer holders // can be used to hold allocated pointers which should be deleted // when an exception is thrown. //
    //
  • Datatype utilities //
      //
    • DataType // enumerates the possible data types in the table system. //
    • ValType // describes the data types and their undefined values. //
    //
  • Other utilities //
      //
    • Dynamic buffers // are used to store data in dynamically allocated buffers. //
    • Regular expressions // are supported by the class Regex // built on top of std::regex. //
    • Sequences // of any datatype can be derived from the base class // Sequence. // One example is uIntSequence, // provided for general use. //
    • Strings. // for the C++ preprocessor //
    //
// // You may want to look at the individual header files // to see whether you might not prefer to include only the header // files you really need; it may be more efficient to do so. // // //
//# //#
  • //# // } //# NAMESPACE CASACORE - END #endif