Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:33

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_MAPBASE_H
0012 #define GAUDIKERNEL_MAPBASE_H 1
0013 // ============================================================================
0014 // Include files
0015 // ============================================================================
0016 // GaudiKernel
0017 // ============================================================================
0018 #include "GaudiKernel/Kernel.h"
0019 // ============================================================================
0020 namespace Gaudi {
0021   // ==========================================================================
0022   namespace Utils {
0023     // ========================================================================
0024     /** @class MapBase GaudiKernel/MapBase.h
0025      *  Helper base-class to allow the generic Python-decoration for
0026      *  all "map-like" classes in Gaudi.
0027      *
0028      *  The corresponding Python class provide the useful iterators,
0029      *  look-up, etc. This base-class in python is decorated with
0030      *  the following methods
0031      *   - <c> __len__       </c>
0032      *   - <c> __iter__      </c>
0033      *   - <c> __iteritems__ </c>
0034      *   - <c> __contains__  </c>
0035      *   - <c> __repr__      </c>
0036      *   - <c> __setitem__   </c>
0037      *   - <c> __delitem__   </c>
0038      *   - <c> __str__       </c>
0039      *   - <c> __repr__      </c>
0040      *   - <c> keys    </c>
0041      *   - <c> items   </c>
0042      *   - <c> values  </c>
0043      *   - <c> get     </c>
0044      *   - <c> has_key </c> (for Python 2)
0045      *
0046      *  Thus it behaves practically identically
0047      *  with builtin-type <c>dict</c>
0048      *
0049      *  @author Vanya BELYAEV Ivan.Belyaev@itep.ru
0050      *  @date 2010-02-20
0051      */
0052     class GAUDI_API MapBase {
0053     public:
0054       // ======================================================================
0055       /// virtual destructor
0056       virtual ~MapBase();
0057       // ======================================================================
0058     protected:
0059       // ======================================================================
0060       /** throw std::out_of_range exception
0061        *  @see std::out_of_range
0062        */
0063       void throw_out_of_range_exception() const;
0064       // ======================================================================
0065     };
0066     // ========================================================================
0067   } // namespace Utils
0068   // ==========================================================================
0069 } // namespace Gaudi
0070 // ============================================================================
0071 // The END
0072 // ============================================================================
0073 #endif // GAUDIKERNEL_MAPBASE_H