Lemma is an Electromagnetics API
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

GridReader.h 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* This file is part of Lemma, a geophysical modelling and inversion API */
  2. /* This Source Code Form is subject to the terms of the Mozilla Public
  3. * License, v. 2.0. If a copy of the MPL was not distributed with this
  4. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  5. */
  6. /**
  7. @file
  8. @date 09/23/2013 11:25:11 AM
  9. @version $Id$
  10. @author Trevor Irons (ti)
  11. @email Trevor.Irons@xri-geo.com
  12. @copyright Copyright (c) 2013, XRI Geophysics, LLC
  13. @copyright Copyright (c) 2013, Trevor Irons
  14. **/
  15. #ifndef GRIDREADER_INC
  16. #define GRIDREADER_INC
  17. #include "LemmaObject.h"
  18. #include "Grid.h"
  19. namespace Lemma {
  20. /**
  21. @class
  22. \ingroup LemmaCore
  23. \brief Abstract class for grid readers.
  24. \details Provides a consistent interface for reading grid files in Lemma.
  25. */
  26. class GridReader : public LemmaObject {
  27. friend std::ostream &operator << (std::ostream &stream, const GridReader &ob) {
  28. stream << ob.Serialize() << "\n---\n"; // End of doc --- as a direct stream should encapulste thingy
  29. return stream;
  30. }
  31. public:
  32. // ==================== LIFECYCLE =======================
  33. // ==================== OPERATORS =======================
  34. // ==================== OPERATIONS =======================
  35. virtual void ReadASCIIGridFile( const std::string& name )=0;
  36. virtual std::shared_ptr< Grid > GetGrid( )=0;
  37. // ==================== ACCESS =======================
  38. // ==================== INQUIRY =======================
  39. /** Returns the name of the underlying class, similiar to Python's type */
  40. virtual inline std::string GetName() const {
  41. return this->CName;
  42. }
  43. protected:
  44. // ==================== LIFECYCLE =======================
  45. /** Default protected constructor, use New */
  46. GridReader ( ) : LemmaObject( ) {
  47. }
  48. /** Default protected constructor, use Delete */
  49. ~GridReader () {
  50. }
  51. private:
  52. /** ASCII string representation of the class name */
  53. static constexpr auto CName = "GridReader";
  54. // ==================== DATA MEMBERS =========================
  55. }; // ----- end of class GridReader -----
  56. } // ----- end of Lemma name -----
  57. #endif // ----- #ifndef GRIDREADER_INC -----