[cig-commits] r13550 - cs/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Tue Dec 9 18:14:03 PST 2008


Author: luis
Date: 2008-12-09 18:14:03 -0800 (Tue, 09 Dec 2008)
New Revision: 13550

Modified:
   cs/cigma/trunk/src/core_readers.cpp
   cs/cigma/trunk/src/core_readers.h
Log:
Promote ReadArray method, and commented out old factory methods

Modified: cs/cigma/trunk/src/core_readers.cpp
===================================================================
--- cs/cigma/trunk/src/core_readers.cpp	2008-12-10 02:14:02 UTC (rev 13549)
+++ cs/cigma/trunk/src/core_readers.cpp	2008-12-10 02:14:03 UTC (rev 13550)
@@ -1,5 +1,4 @@
 #include "core_readers.h"
-#include "core_array.h"
 #include "nc_array.h"
 #include "eb_array.h"
 #include "AnnLocator.h"
@@ -14,22 +13,29 @@
 
 // ----------------------------------------------------------------------------
 
-static cigma::array<double>* ReadArray(const DataPath& array_path)
+cigma::array<double>* cigma::ReadArray(const DataPath& array_path)
 {
     cigma::array<double>* a = 0;
 
     string filename = array_path.filename();
+    string location = array_path.location();
     shared_ptr<FileReader> reader = FileReader::New(filename, "r");
     const FileReader::ReaderType rt = reader->getReaderType();
     if (rt == FileReader::HDF5_FILE_READER)
     {
-        int status;
-        throw cigma::Exception("ReadArray", "Error in HDF5 reader");
+        a = new cigma::array<double>();
+        int status = reader->getDataset(location.c_str(), &(a->_data), &(a->npts), &(a->ndim));
+        if (status < 0)
+        {
+            delete a;
+            throw cigma::Exception("ReadArray", "Error in HDF5 reader");
+        }
+        return a;
     }
     else if (rt == FileReader::VTK_FILE_READER)
     {
         int status;
-        throw cigma::Exception("ReadNodeCoordinates", "Error in VTK reader");
+        throw cigma::Exception("ReadArray", "Error in VTK reader");
     }
     else if (rt == FileReader::TEXT_FILE_READER)
     {
@@ -38,13 +44,13 @@
         if (status < 0)
         {
             delete a;
-            throw cigma::Exception("ReadArray", "error in text reader");
+            throw cigma::Exception("ReadArray", "Error in text reader");
         }
         return a;
     }
     else
     {
-        throw cigma::Exception("ReadArray", "could not load data path");
+        throw cigma::Exception("ReadArray", "Could not load data path");
     }
 
     return a;
@@ -164,6 +170,7 @@
 
 // ----------------------------------------------------------------------------
 
+/*
 shared_ptr<MeshPart> cigma::ReadMeshPart(const MeshInfo& mesh_info)
 {
     TRI_LOG_STR("cigma::ReadMeshPart()");
@@ -213,10 +220,11 @@
     }
 
     return mesh_ptr;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
+/*
 shared_ptr<Quadrature> cigma::ReadQuadrature(const QuadratureInfo& quadrature_info)
 {
     TRI_LOG_STR("cigma::ReadQuadrature()");
@@ -331,10 +339,11 @@
     }
 
     return q_ptr;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
+/*
 shared_ptr<FE> cigma::ReadFE(const FE_Info& fe_info)
 {
     TRI_LOG_STR("cigma::ReadFE()");
@@ -360,7 +369,7 @@
     }
 
     return fe_ptr;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
@@ -417,6 +426,7 @@
 
 // ----------------------------------------------------------------------------
 
+/*
 shared_ptr<Field> cigma::ReadField(const FieldInfo& field_info)
 {
     TRI_LOG_STR("cigma::ReadField()");
@@ -442,6 +452,6 @@
     field_ptr->setDofHandler(dofs_ptr);
 
     return field_ptr;
-}
+} // */
 
 // ----------------------------------------------------------------------------

Modified: cs/cigma/trunk/src/core_readers.h
===================================================================
--- cs/cigma/trunk/src/core_readers.h	2008-12-10 02:14:02 UTC (rev 13549)
+++ cs/cigma/trunk/src/core_readers.h	2008-12-10 02:14:03 UTC (rev 13550)
@@ -2,6 +2,9 @@
 #define __CIGMA_READERS_H__
 
 #include <boost/shared_ptr.hpp>
+#include "core_array.h"
+
+#include "DataPath.h"
 #include "NodeCoordinates.h"
 #include "ElementBlock.h"
 #include "MeshPart.h"
@@ -10,25 +13,26 @@
 #include "FE.h"
 #include "Field.h"
 #include "Cell.h"
-#include "DataPath.h"
-#include "core_args.h"
+//#include "core_args.h"
 
 namespace cigma
 {
 
+    cigma::array<double>* ReadArray(const DataPath& array_path);
+
     boost::shared_ptr<NodeCoordinates> ReadNodeCoordinates(const DataPath& nc_path);
 
     boost::shared_ptr<ElementBlock> ReadElementBlock(const DataPath& eb_path);
 
-    boost::shared_ptr<MeshPart> ReadMeshPart(const MeshInfo& mesh_info);
+    //boost::shared_ptr<MeshPart> ReadMeshPart(const MeshInfo& mesh_info);
 
-    boost::shared_ptr<Quadrature> ReadQuadrature(const QuadratureInfo& quadrature_info);
+    //boost::shared_ptr<Quadrature> ReadQuadrature(const QuadratureInfo& quadrature_info);
 
-    boost::shared_ptr<FE> ReadFE(const FE_Info& fe_info);
+    //boost::shared_ptr<FE> ReadFE(const FE_Info& fe_info);
 
     boost::shared_ptr<DofHandler> ReadDofHandler(const DataPath& dofs_path);
 
-    boost::shared_ptr<Field> ReadField(const FieldInfo& field_info);
+    //boost::shared_ptr<Field> ReadField(const FieldInfo& field_info);
 
 }
 



More information about the CIG-COMMITS mailing list