[ismrmrd] 50/177: Squashed commit of the following:

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:02:01 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.

commit b00cbe8f480df30396edc79a3f42d2845db43502
Author: Souheil Inati <souheil.inati at nih.gov>
Date:   Thu Sep 11 11:08:03 2014 -0400

    Squashed commit of the following:
    
    commit ca42e3a2f61dfce929baea2d9abcc70450a2466f
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Sep 5 17:29:00 2014 -0400
    
        fix the errors after merging
    
    commit c2332aeee9e60482866d80adc71eb3af8d543b58
    Merge: 80819d9 a8e97fc
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Sep 5 17:20:40 2014 -0400
    
        merge from sf
    
    commit 80819d9518019cc4e19e12ef8ef830518ada5295
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Thu Sep 4 10:21:09 2014 -0400
    
        add const on some MetaContainer functions
    
    commit a8e97fc2e62b1f899d66a85a4a75bff11a874501
    Merge: 709d79b b102f84
    Author: Michael S. Hansen <michael.hansen at nih.gov>
    Date:   Thu Sep 4 05:57:21 2014 -0400
    
        Merge branch 'development' of ssh://git.code.sf.net/p/ismrmrd/code into development
    
    commit 709d79b705e9fc844d697dcb56e611020d7707a1
    Author: Michael S. Hansen <michael.hansen at nih.gov>
    Date:   Thu Sep 4 05:57:04 2014 -0400
    
        Now comparing a cleaning (no linebreaks or whitespace) version of the schema when hashing
    
    commit b102f845c42e92a10cb07469591d1239953ffd1b
    Author: Ghislain Antony Vaillant <ghisvail at gmail.com>
    Date:   Mon Sep 1 16:06:46 2014 +0100
    
        add more constructors to MatrixSize and Limit
    
        now possible:
        - MatrixSize {x, y}, 2D ctor, z set to 1 implicitly
        - MatrixSize {x, y, z}, 3D ctor, x, y, z set explicitly
        - Limit {min, max, cen}
    
    commit c4f450f697096aa25a4c8c3ff345a04e5f0e611f
    Author: Michael S. Hansen <michael.hansen at nih.gov>
    Date:   Sun Aug 31 15:26:44 2014 -0400
    
        Added versioning including a check of the XML schema's SHA1 hash to help remember to increase minor version number when changing the schema.
    
    commit 698dadca6cbe0fe0ae6d98a89d882f7efe1335bc
    Merge: 522f681 d49b948
    Author: Michael S. Hansen <michael.hansen at nih.gov>
    Date:   Fri Aug 29 15:11:55 2014 -0400
    
        Merge remote-tracking branch 'origin/development' into dev_xml_reorg
    
    commit 522f681c02bb7c9bc6337613c5600c0020abfb74
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Wed Aug 27 17:21:01 2014 -0400
    
        use HDF5_ROOT to find hdf5 in windows, remove the HDF5 DEBUG linkdage
    
    commit 339d8ddb59a4407ea41dd7103aee186ac1ad41d5
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Wed Aug 27 13:57:21 2014 -0400
    
        use HDF5_ROOT to find hdf5 in windows
    
    commit d49b948d7a15a57c21da203663dec9ef47f568fe
    Author: Dusan Puletic <puletic at users.sourceforge.net>
    Date:   Mon Aug 25 11:02:35 2014 -0400
    
        bug fixed: ismrmrd.cxx and ismrmrd.h get generated in xsd folder
    
    commit 16c47a47ef265363841577f9d454125acf3c524c
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Sun Aug 24 09:27:04 2014 -0400
    
        fix windows xsd warp
    
    commit a7d0b4c623e54af91e32d89c19227e2dd5dfc7a5
    Merge: a76dfb6 7441550
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 22 16:07:20 2014 -0400
    
        Merge branch 'dev_xml_reorg' into hx_development_20140724_vatican
    
    commit 7441550458f279cf434d312b6d428ccb1e135d4a
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 22 16:06:06 2014 -0400
    
        fix linux linkage
    
    commit a76dfb647b1d39e2ae57ac317453d7fef926c275
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 22 15:22:07 2014 -0400
    
        merge from xml
    
    commit 77e9ae92f4797e2c9ad5eafecfd7c1643db408c4
    Merge: fe61505 67e4cdd
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 22 15:21:11 2014 -0400
    
        merge from xml
    
    commit 67e4cddcefbe1a362ff66d0739c3b2fb51ef25fb
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 22 15:19:59 2014 -0400
    
        fix windows compilation
    
    commit fe61505367c208b0f5ab9620e2ff50af618a5faa
    Merge: 36b4044 6111a77
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Wed Aug 13 18:03:54 2014 -0400
    
        Merge branch 'development_sf' into hx_development_20140724_vatican
    
    commit 6111a770ba74872dcd94005267156b36786a3a7f
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Wed Aug 13 17:54:23 2014 -0400
    
        fix a windows compilation error
    
    commit 36b4044ea69dde0b8f8580fa6d3d5c4c112ae0a9
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 8 18:38:54 2014 -0400
    
        remove end_scan_data flag
    
    commit 0d8fa18953d6dd9b085b6e3520e79584d50f2389
    Merge: bfa2d5c 9200ebf
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 8 18:13:24 2014 -0400
    
        Merge remote-tracking branch 'sf/development' into hx_development_20140724_vatican
    
    commit bfa2d5cb70049ca0db415525616b96dd238f5760
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Fri Aug 8 18:12:45 2014 -0400
    
        add end of scan
    
    commit 038a1cce0296906c26004d0d7fc2fc2cd454809f
    Author: Hui Xue <hui.xue at nih.gov>
    Date:   Mon Jun 30 08:20:10 2014 -0400
    
        change the ismrmrd for windows compilation
---
 CMakeLists.txt                 | 195 ++++++++++++++++++++++++++++++-----------
 bindings/java/CMakeLists.txt   |   2 +
 bindings/python/CMakeLists.txt |   9 +-
 xml/ismrmrd_meta.h             |  25 +++---
 xml/ismrmrd_xml.h              |  25 ++++++
 5 files changed, 185 insertions(+), 71 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08db682..5e91c42 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,19 +1,84 @@
 cmake_minimum_required(VERSION 2.8)
 project(ISMRMRD)
 
-# install into a named subdirectory
-set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/ismrmrd)
+enable_testing()
 
-# add project specific cmake find modules
-list(APPEND CMAKE_MODULE_PATH cmake)
 
-# set the build type to Release if not specified
+#Set the build type to Release if not specified
 IF(NOT CMAKE_BUILD_TYPE)
   SET(CMAKE_BUILD_TYPE Release CACHE STRING
       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
       FORCE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
+# define install paths globally
+set(ISMRMRD_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/ismrmrd)
+set(ISMRMRD_INSTALL_LIB_DIR ${ISMRMRD_INSTALL_PREFIX}/lib)
+set(ISMRMRD_INSTALL_INCLUDE_DIR ${ISMRMRD_INSTALL_PREFIX}/include)
+set(ISMRMRD_INSTALL_BIN_DIR ${ISMRMRD_INSTALL_PREFIX}/bin)
+set(ISMRMRD_INSTALL_MODULE_DIR ${ISMRMRD_INSTALL_PREFIX}/cmake)
+set(ISMRMRD_INSTALL_SCHEMA_DIR ${ISMRMRD_INSTALL_PREFIX}/schema)
+set(ISMRMRD_INSTALL_MATLAB_DIR ${ISMRMRD_INSTALL_PREFIX}/matlab)
+set(ISMRMRD_INSTALL_JAVA_DIR ${ISMRMRD_INSTALL_PREFIX}/java)
+set(ISMRMRD_INSTALL_PYTHON_DIR ${ISMRMRD_INSTALL_PREFIX}/python)
+set(ISMRMRD_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+set(ISMRMRD_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+set(ISMRMRD_SCHEMA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/schema)
+set(ISMRMRD_SCHEMA_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/xsd)
+
+
+#  ---   VERSIONING  (begin) ----
+#The ISMRMRD convention is to use version numbers with the format:
+#   XX.YY.ZZ (major, minor, patch)
+#
+#The major number increaments when the binary compatibility of
+#the fixed memory layout strucs (e.g. AcquisitionHeader) is broken.
+#The minor number changes when there are changes to the XML schema for 
+#the flexible header. The micro number changes when there are small changes
+#in the utility libraries, that don't affect the data format itself.
+set(ISMRMRD_VERSION_MAJOR 0)
+set(ISMRMRD_VERSION_MINOR 0)
+set(ISMRMRD_VERSION_PATCH 1) 
+
+set(ISMRMRD_XML_SCHEMA_SHA1 "6f1ed6b9209075de481c02e66a37913d9a46b772")
+
+#Remove line breaks and white space that does not change the meaning of the schema
+file(STRINGS ${CMAKE_SOURCE_DIR}/schema/ismrmrd.xsd SCHEMA_STRINGS) #Read all strings from file 
+string(REPLACE ";" "" SCHEMA_NO_BREAKS  ${SCHEMA_STRINGS}) #Concatenate the list of strings
+string(REGEX REPLACE ">[ \t]+<" "><" SCHEMA_NO_SPACE ${SCHEMA_NO_BREAKS}) #Remove spaces and tabs
+string(STRIP ${SCHEMA_NO_SPACE} SCHEMA_NO_SPACE) #Strip any leading/trailing whitespace
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ismrmrd_no_white_space.xsd ${SCHEMA_NO_SPACE}) #Write to file
+
+#Now hash the cleaned up file
+file(SHA1 ${CMAKE_CURRENT_BINARY_DIR}/ismrmrd_no_white_space.xsd ISMRMRD_CURRENT_XML_SCHEMA_SHA1)
+
+#Compare to last known hash
+if (NOT (${ISMRMRD_XML_SCHEMA_SHA1} STREQUAL ${ISMRMRD_CURRENT_XML_SCHEMA_SHA1}))
+  message("")
+  message("-----------------------------------------------")
+  message("            !!VERSION ERROR!!                  ")
+  message("                                               ")
+  message(" Expected SHA1 hash:                           ")
+  message("    ${ISMRMRD_XML_SCHEMA_SHA1}")
+  message(" Actual SHA1 hash:                             ")
+  message("    ${ISMRMRD_CURRENT_XML_SCHEMA_SHA1}")
+  message("                                               ")
+  message(" The XML Schema (ismrmrmd.xsd) has changed and ")
+  message(" the MINOR version number should be increased  ")
+  message(" and the SHA1 has should be updated in the     ")
+  message(" CMakelists.txt file.                          ")
+  message("                                               ")
+  message(" If you don't know what this message means, you")
+  message(" probably shouldn't be changing anything       ")
+  message("-----------------------------------------------")
+  message("")
+  message(FATAL_ERROR "     FATAL XML VERSION ERROR")
+endif()
+#  ---   VERSIONING  (end) ----
+ 
+# add project specific cmake find modules
+list(APPEND CMAKE_MODULE_PATH ${ISMRMRD_MODULE_DIR})
+
 if (WIN32)
     add_definitions(-DWIN32 -D_WIN32 -D_WINDOWS)
     add_definitions(-DUNICODE -D_UNICODE)
@@ -24,61 +89,89 @@ if (WIN32)
     set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
     set(CMAKE_STATIC_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
     set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
-else (WIN32)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
 endif (WIN32)
 
 # required packages for main library
-find_package(HDF5 1.8 COMPONENTS C REQUIRED)
-
-include_directories(
-    ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMAKE_CURRENT_SOURCE_DIR}/xml 
-    ${HDF5_C_INCLUDE_DIR})
-
-add_library(ismrmrd SHARED 
-		    ismrmrd.c 
-		    ismrmrd.cpp 
-		    ismrmrd_dataset.c
-		    ismrmrd_dataset.cpp
-  		    xml/ismrmrd_xml.cpp
-  		    xml/ismrmrd_meta.cpp
-  		    xml/pugixml.cpp)
-
-# findHDF5.cmake does not work very well on Windows, let's help it out
+find_package(Boost COMPONENTS thread system REQUIRED)
+find_package(HDF5 1.8 COMPONENTS C CXX HL REQUIRED)
+
+# necessary for Windows and RHEL <=6 systems
+set(Boost_NO_BOOST_CMAKE ON)
+
 if(WIN32)
-    target_link_libraries(ismrmrd optimized ${HDF5_hdf5_LIBRARY_RELEASE})
-    target_link_libraries(ismrmrd debug ${HDF5_hdf5_LIBRARY_DEBUG})
-else(WIN32)
-    target_link_libraries(ismrmrd ${HDF5_LIBRARIES})
+  add_definitions( -DBOOST_ALL_NO_LIB )
+  add_definitions( -DBOOST_ALL_DYN_LINK )
 endif(WIN32)
 
-install(TARGETS ismrmrd DESTINATION lib)
+add_library(ismrmrd SHARED ismrmrd_hdf5.cpp)
+set(ISMRMRD_VERSION_STRING ${ISMRMRD_VERSION_MAJOR}.${ISMRMRD_VERSION_MINOR}.${ISMRMRD_VERSION_PATCH})
+
+set_target_properties(ismrmrd PROPERTIES VERSION ${ISMRMRD_VERSION_STRING} SOVERSION ${ISMRMRD_VERSION_MAJOR})
+
+include_directories(${HDF5_C_INCLUDE_DIR} ${HDF5_CXX_INCLUDE_DIR}
+    ${Boost_INCLUDE_DIR})
+
+target_link_libraries(ismrmrd ${HDF5_LIBRARIES} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY})
+
+install(TARGETS ismrmrd
+    DESTINATION ${ISMRMRD_INSTALL_LIB_DIR})
+
+install(FILES ${ISMRMRD_SOURCE_DIR}/ismrmrd.h
+    ${ISMRMRD_SOURCE_DIR}/ismrmrd_hdf5.h
+    ${ISMRMRD_SOURCE_DIR}/ismrmrd_hdf5_datatypes.h
+    ${ISMRMRD_SOURCE_DIR}/ismrmrd_export.h
+    DESTINATION ${ISMRMRD_INSTALL_INCLUDE_DIR})
+
+# required packages for support xsd library
+find_package(XSD REQUIRED)
+find_package(XercesC REQUIRED)
+
+# process the XSD files
+set(XSDS ${ISMRMRD_SCHEMA_DIR}/ismrmrd.xsd)
+set(XSD_ARGS cxx-tree --generate-serialization)
+if ( WIN32 )
+    set(XSD_ARGS cxx-tree --generate-serialization)
+    WRAP_XSD(XSDS_SOURCES XSD_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/schema ${XSDS} OPTIONS ${XSD_ARGS})
+    
+    # This dummy is required to trigger autogeneration of ${XSDS_SOURCES}
+    add_library(dummy SHARED ${XSDS_SOURCES})
+    target_link_libraries(dummy ${XERCESC_LIBRARIES})
+else (WIN32)
+    wrap_xsd(XSDS_SOURCES XSD_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/schema ${XSDS} OPTIONS ${XSD_ARGS})
+endif (WIN32)
+
+if ( WIN32 )
+    include_directories(${ISMRMRD_SCHEMA_SOURCE_DIR} ${XSD_INCLUDE_DIR}
+        ${XERCESC_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${HDF5_CXX_INCLUDE_DIR}
+        ${HDF5_C_INCLUDE_DIR})
+    link_directories(${Boost_LIBRARY_DIRS})
+endif ( WIN32 )
 
-install(FILES 
-    ismrmrd.h
-    ismrmrd_dataset.h
-    ismrmrd_export.h
-    xml/ismrmrd_xml.h
-    xml/ismrmrd_meta.h
-    DESTINATION include)
+if ( NOT WIN32 )
+    add_library(ismrmrd_xsd SHARED ${XSDS_SOURCES})
+    set_target_properties(ismrmrd_xsd PROPERTIES VERSION ${ISMRMRD_VERSION_STRING} SOVERSION ${ISMRMRD_VERSION_MAJOR})
+    include_directories(${XERCESC_INCLUDE_DIR})
+    target_link_libraries(ismrmrd_xsd ${XERCESC_LIBRARIES})
+endif ( NOT WIN32 )
 
-install(FILES
-    schema/ismrmrd.xsd
-    DESTINATION schema)
+install(FILES ${XSDS} ${XSDS_SOURCES}
+    DESTINATION ${ISMRMRD_INSTALL_SCHEMA_DIR})
 
-install(FILES
-    cmake/FindIsmrmrd.cmake
-    cmake/FindFFTW3.cmake
-    cmake/FindNumPy.cmake
-    DESTINATION cmake)
+if ( NOT WIN32 )
+    install(TARGETS ismrmrd_xsd DESTINATION ${ISMRMRD_INSTALL_LIB_DIR})
+endif ( NOT WIN32 )
 
-# copy the examples directory
-install(DIRECTORY examples DESTINATION .)
+install(FILES ${ISMRMRD_MODULE_DIR}/FindIsmrmrd.cmake
+    ${ISMRMRD_MODULE_DIR}/FindFFTW3.cmake
+    ${ISMRMRD_MODULE_DIR}/FindXSD.cmake
+    ${ISMRMRD_MODULE_DIR}/FindXercesC.cmake
+    ${ISMRMRD_MODULE_DIR}/FindNumPy.cmake
+    DESTINATION ${ISMRMRD_INSTALL_MODULE_DIR})
 
+add_subdirectory(examples/c++)
+add_subdirectory(utilities)
+add_subdirectory(tests)
 add_subdirectory(doc)
-#add_subdirectory(utilities)
-#add_subdirectory(tests)
-#add_subdirectory(matlab)
-#add_subdirectory(bindings)
+add_subdirectory(matlab)
+add_subdirectory(bindings)
+add_subdirectory(xml)
diff --git a/bindings/java/CMakeLists.txt b/bindings/java/CMakeLists.txt
index 503c7f9..b88f77f 100644
--- a/bindings/java/CMakeLists.txt
+++ b/bindings/java/CMakeLists.txt
@@ -2,6 +2,8 @@ include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${HDF5_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}/cpp ${Boost_INCLUDE_DIR})
 include_directories(${JNI_INCLUDE_DIRS})
 
+add_definitions(-Dismrmrd_EXPORTS)
+
 set(CMAKE_SWIG_FLAGS -package org.ismrm.ismrmrd)
 set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/org/ismrm/ismrmrd)
 
diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt
index 29bc524..a0e6dd7 100644
--- a/bindings/python/CMakeLists.txt
+++ b/bindings/python/CMakeLists.txt
@@ -10,14 +10,7 @@ set_source_files_properties(ismrmrd_python.i PROPERTIES CPLUSPLUS ON)
 
 swig_add_module(ismrmrd python ismrmrd_python.i ${CMAKE_SOURCE_DIR}/ismrmrd_hdf5.cpp)
 
-IF(WIN32)
-    swig_link_libraries(ismrmrd optimized ${HDF5_hdf5_LIBRARY_RELEASE} optimized ${HDF5_hdf5_cpp_LIBRARY_RELEASE})
-    swig_link_libraries(ismrmrd debug ${HDF5_hdf5_LIBRARY_DEBUG} debug ${HDF5_hdf5_cpp_LIBRARY_DEBUG})
-    swig_link_libraries(ismrmrd ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
-ELSE (WIN32)
-    swig_link_libraries(ismrmrd ${HDF5_LIBRARIES} ${Boost_THREAD_LIBRARY}
-        ${Boost_SYSTEM_LIBRARY} ${PYTHON_LIBRARIES})
-ENDIF(WIN32)
+swig_link_libraries(ismrmrd ${HDF5_LIBRARIES} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${PYTHON_LIBRARIES})
 
 install(TARGETS ${SWIG_MODULE_ismrmrd_REAL_NAME}
     DESTINATION ${ISMRMRD_INSTALL_PYTHON_DIR})
diff --git a/xml/ismrmrd_meta.h b/xml/ismrmrd_meta.h
index 1bb87fd..5ca4433 100644
--- a/xml/ismrmrd_meta.h
+++ b/xml/ismrmrd_meta.h
@@ -1,7 +1,7 @@
 #ifndef ISMRMRDMETA_H
 #define ISMRMRDMETA_H
 
-#include "ismrmrd_export.h"
+#include "ismrmrd_xml_export.h"
 
 #include <string>
 #include <sstream>
@@ -152,6 +152,11 @@ namespace ISMRMRD
     }
   };
 
+  class MetaContainer;
+
+  EXPORTISMRMRDXML void deserialize(const char* xml, MetaContainer& h);
+  EXPORTISMRMRDXML void serialize(MetaContainer& h, std::ostream& o);
+
   class MetaContainer
   {
     typedef std::map< std::string, std::vector<MetaValue> > map_t;
@@ -190,9 +195,9 @@ namespace ISMRMRD
     }
 
     ///Return number of values of a particular parameter
-    size_t length(const char* name)
+    size_t length(const char* name) const
     {
-      map_t::iterator it = map_.find(std::string(name));
+      map_t::const_iterator it = map_.find(std::string(name));
       if (it != map_.end()) {
 	return it->second.size();
       }
@@ -200,26 +205,26 @@ namespace ISMRMRD
     }
 
     ///Return value number @index of the parameter @name as long
-    long as_long(const char* name, size_t index = 0)
+    long as_long(const char* name, size_t index = 0) const
     {
       return value(name,index).as_long();
     }
 
     ///Return value number @index of the parameter @name as double
-    double as_double(const char* name, size_t index = 0)
+    double as_double(const char* name, size_t index = 0) const
     {
       return value(name,index).as_double();
     }
     
     ///Return value number @index of the parameter @name as string
-    const char* as_str(const char* name, size_t index = 0)
+    const char* as_str(const char* name, size_t index = 0) const
     {
       return value(name,index).as_str();
     }
 
-    const MetaValue& value(const char* name, size_t index = 0)
+    const MetaValue& value(const char* name, size_t index = 0) const
     {
-      map_t::iterator it = map_.find(std::string(name));
+      map_t::const_iterator it = map_.find(std::string(name));
       if (it == map_.end()) {
 	throw std::runtime_error("Attempting to access unkown parameter");
       }
@@ -242,10 +247,6 @@ namespace ISMRMRD
   template void MetaContainer::append<long>(const char* name, long value);
   template void MetaContainer::append<double>(const char* name, double);
   */
-
-  EXPORTISMRMRD void deserialize(const char* xml, MetaContainer& h);
-  EXPORTISMRMRD void serialize(MetaContainer& h, std::ostream& o);
-
 }
 
 #endif //ISMRMRDMETA_H
diff --git a/xml/ismrmrd_xml.h b/xml/ismrmrd_xml.h
index b3786f4..eb88900 100644
--- a/xml/ismrmrd_xml.h
+++ b/xml/ismrmrd_xml.h
@@ -156,6 +156,23 @@ namespace ISMRMRD
     {
 
     }
+    
+    MatrixSize(unsigned short x, unsigned short y)
+    : x(x)
+    , y(y)
+    , z(1)
+    {
+
+    }
+    
+    MatrixSize(unsigned short x, unsigned short y, unsigned short z)
+    : x(x)
+    , y(y)
+    , z(z)
+    {
+
+    }
+    
     unsigned short x;
     unsigned short y;
     unsigned short z;
@@ -185,6 +202,14 @@ namespace ISMRMRD
 
     }
     
+    Limit(unsigned short minimum, unsigned short maximum, unsigned short center) 
+    : minimum(minimum)
+    , maximum(maximum)
+    , center(center)
+    {
+
+    }
+    
     unsigned short minimum;
     unsigned short maximum;
     unsigned short center;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list