text: /* /////////////////////////////////////////////////////////////////////////
   * File:        unixstl/synch/error/exceptions.hpp
   *
   * Purpose:     Synchronisation API exception(s).
   *
   * Created:     30th May 2006
   * Updated:     10th August 2009
   *
   * Home:        http://stlsoft.org/
   *
   * Copyright (c) 2006-2009, Matthew Wilson and Synesis Software
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * - Redistributions of source code must retain the above copyright notice, this
   *   list of conditions and the following disclaimer.
   * - Redistributions in binary form must reproduce the above copyright notice,
   *   this list of conditions and the following disclaimer in the documentation
   *   and/or other materials provided with the distribution.
   * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
   *   any contributors may be used to endorse or promote products derived from
   *   this software without specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *
   * ////////////////////////////////////////////////////////////////////// */
  
  
  /** \file unixstl/synch/error/exceptions.hpp
   *
   * \brief [C++ only] Definition of unixstl::synchronisation_exception class
   *   (\ref group__library__synch "Synchronisation" Library).
   */
  
  #ifndef UNIXSTL_INCL_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS
  #define UNIXSTL_INCL_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS
  
  #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
  # define UNIXSTL_VER_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS_MAJOR       2
  # define UNIXSTL_VER_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS_MINOR       0
  # define UNIXSTL_VER_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS_REVISION    1
  # define UNIXSTL_VER_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS_EDIT        12
  #endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */
  
  /* /////////////////////////////////////////////////////////////////////////
   * Compatibility
   */
  
  /*
  [DocumentationStatus:Ready]
   */
  
  /* /////////////////////////////////////////////////////////////////////////
   * Includes
   */
  
  #ifndef UNIXSTL_INCL_UNIXSTL_H_UNIXSTL
  # include <unixstl/unixstl.h>
  #endif /* !UNIXSTL_INCL_UNIXSTL_H_UNIXSTL */
  #ifndef UNIXSTL_INCL_UNIXSTL_HPP_ERROR_UNIX_EXCEPTIONS
  # include <unixstl/error/exceptions.hpp>
  #endif /* !UNIXSTL_INCL_UNIXSTL_ERROR_HPP_UNIX_EXCEPTIONS */
  
  /* /////////////////////////////////////////////////////////////////////////
   * Namespace
   */
  
  #ifndef _UNIXSTL_NO_NAMESPACE
  # if defined(_STLSOFT_NO_NAMESPACE) || \
       defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
  /* There is no stlsoft namespace, so must define ::unixstl */
  namespace unixstl
  {
  # else
  /* Define stlsoft::unixstl_project */
  
  namespace stlsoft
  {
  
  namespace unixstl_project
  {
  
  # endif /* _STLSOFT_NO_NAMESPACE */
  #endif /* !_UNIXSTL_NO_NAMESPACE */
  
  /* /////////////////////////////////////////////////////////////////////////
   * Classes
   */
  
  /** \brief Root exception thrown by
   *   the \ref group__library__synch "Synchronisation" library.
   */
  class synchronisation_exception
      : public unix_exception
  {
  /// \name Member Types
  /// @{
  public:
      typedef unix_exception                      parent_class_type;
      typedef synchronisation_exception           class_type;
      typedef parent_class_type::error_code_type  error_code_type;
  /// @}
  
  /// \name Construction
  /// @{
  public:
      synchronisation_exception(us_char_a_t const* message, error_code_type error)
          : parent_class_type(message, error)
      {};
  /// @}
  
  /// \name Not to be implemented
  /// @{
  private:
      class_type& operator =(class_type const&);
  /// @}
  };
  
  ////////////////////////////////////////////////////////////////////////////
  // Unit-testing
  
  #ifdef STLSOFT_UNITTEST
  # include "./unittest/exceptions_unittest_.h"
  #endif /* STLSOFT_UNITTEST */
  
  /* ////////////////////////////////////////////////////////////////////// */
  
  #ifndef _UNIXSTL_NO_NAMESPACE
  # if defined(_STLSOFT_NO_NAMESPACE) || \
       defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
  } // namespace unixstl
  # else
  } // namespace unixstl_project
  } // namespace stlsoft
  # endif /* _STLSOFT_NO_NAMESPACE */
  #endif /* !_UNIXSTL_NO_NAMESPACE */
  
  /* ////////////////////////////////////////////////////////////////////// */
  
  #endif /* !UNIXSTL_INCL_UNIXSTL_SYNCH_ERROR_HPP_EXCEPTIONS */
  
  /* ///////////////////////////// end of file //////////////////////////// */
  