libpniio
Namespaces | Data Structures | Typedefs | Enumerations | Functions | Variables
pni::io::nx Namespace Reference

Namespaces

 h5
 
 parsers
 
 stl
 
 xml
 

Data Structures

class  as_attribute_visitor
 as attribute visitor More...
 
class  as_field_visitor
 as field visitor More...
 
class  as_group_visitor
 as group visitor More...
 
class  as_link_visitor
 as link visitor More...
 
class  begin_visitor
 get iterator to first element More...
 
class  close_visitor
 close an object More...
 
class  create_attribute_visitor
 create attribute visitor More...
 
class  create_field_visitor
 create field visitor More...
 
class  create_group_visitor
 create group visitor More...
 
class  end_visitor
 get iterator to last element More...
 
class  flat_group
 flat group adapter More...
 
class  get_attribute_visitor
 get attribute visitor More...
 
class  get_attributes_visitor
 get attribute visitor More...
 
class  get_class_visitor
 get class visitor More...
 
class  get_filename_visitor
 get filename visitor More...
 
class  get_name_visitor
 get name visitor More...
 
class  get_parent_visitor
 get parent visitor More...
 
class  get_path_visitor
 get path visitor More...
 
class  get_rank_visitor
 get rank visitor More...
 
class  get_shape_visitor
 get shape visitor More...
 
class  get_size_visitor
 get size visitor More...
 
class  get_type_visitor
 get type visitor More...
 
class  get_unit_visitor
 get unit visitor More...
 
class  grow_visitor
 grow visitor More...
 
class  is_attribute_visitor
 is_attribute visitor More...
 
class  is_class_visitor
 is class visitor More...
 
class  is_field_visitor
 is_field visitor More...
 
class  is_group_visitor
 is_group visitor More...
 
class  is_link_visitor
 is_link visitor More...
 
class  is_valid_visitor
 check object validity More...
 
class  nxattribute
 attribute object More...
 
class  nxattribute_manager
 attribute manager template More...
 
class  nxdate_time
 date time factory More...
 
class  nxdeflate_filter
 Nexus deflate filter. More...
 
class  nxfield
 nxfield base class More...
 
class  nxfile
 File object. More...
 
class  nxfilter
 Filter object. More...
 
class  nxgroup
 NXgroup object. More...
 
struct  nximp_code_map
 implementation code type map More...
 
struct  nximp_map
 implementation map More...
 
class  nxlink
 representation of a NeXus link More...
 
struct  nxobject_attribute
 get attribute type More...
 
struct  nxobject_field
 get field type More...
 
struct  nxobject_group
 get group type More...
 
struct  nxobject_trait
 nexus object traits More...
 
struct  nxobject_trait< nximp_code::HDF5 >
 object trait for the HDF5 implementation More...
 
class  nxpath
 Nexus path class. More...
 
class  read_visitor
 read visitor More...
 
class  set_class_visitor
 set class visitor More...
 
class  set_unit_visitor
 set unit visitor More...
 
class  write_visitor
 write visitor More...
 

Typedefs

template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
using nxobject = boost::variant< GTYPE, FTYPE, ATYPE, LTYPE >
 
template<typename VTYPE , int i>
using nxobject_element = boost::mpl::at< typename VTYPE::types, boost::mpl::int_< i >>
 

Enumerations

enum  nximp_code { nximp_code::HDF5 }
 implementation codes More...
 
enum  nxlink_type { nxlink_type::HARD, nxlink_type::SOFT, nxlink_type::EXTERNAL, nxlink_type::ATTRIBUTE }
 Nexus link type. More...
 
enum  nxlink_status { nxlink_status::VALID, nxlink_status::INVALID }
 Nexus link status. More...
 
enum  nxobject_type {
  nxobject_type::NXFIELD, nxobject_type::NXGROUP, nxobject_type::NXFILE, nxobject_type::NXATTRIBUTE,
  nxobject_type::NXNONE
}
 Nexus typd ids. More...
 

Functions

template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
ATYPE as_attribute (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 as attribute wrapper More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
FTYPE as_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 as field wrapper More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
GTYPE as_group (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 as group wrapper More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
LTYPE as_link (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 as link wrapper More...
 
template<nximp_code IMPID>
void close (nxlink< IMPID > &)
 close object More...
 
template<typename OTYPE >
void close (OTYPE &o)
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
void close (nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 close object More...
 
template<typename T , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename STYPE >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_attribute (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, const pni::core::string &name, const STYPE &shape, bool overwrite=false)
 create multidimensional attribute More...
 
template<typename T , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_attribute (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, const pni::core::string &name, bool overwrite=false)
 create scalar attribute More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename... ARGTS>
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_attribute (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, pni::core::type_id_t tid, ARGTS...args)
 create attribute More...
 
template<typename T , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename STYPE , typename FILTERT , typename PATHT >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &location, const PATHT &path, const STYPE &shape, const STYPE &chunk, const FILTERT &filter)
 field construction More...
 
template<typename T , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename STYPE , typename PATHT >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, const PATHT &path, const STYPE &shape, const STYPE &chunk)
 field construction template More...
 
template<typename T , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename STYPE , typename PATHT , typename FILTERIMP >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, const PATHT &path, const STYPE &shape, const nxfilter< FILTERIMP > &filter)
 field construction template More...
 
template<typename T , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename PATHT , typename STYPE = pni::core::shape_t>
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, const PATHT &path, const STYPE &shape={1})
 field construction template More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename... ARGTS>
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, pni::core::type_id_t tid, ARGTS...args)
 field construction template More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE , typename PATHT >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
create_group (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, const PATHT &path)
 create_group wrapper More...
 
template<template< nximp_code > class PTYPE, nximp_code IMPID>
nxobject_trait< IMPID >
::object_type 
get_attribute (const PTYPE< IMPID > &parent, const pni::core::string &name)
 get attribute by name More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
get_attribute (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, const pni::core::string &name)
 get attribute More...
 
template<typename CTYPE , template< nximp_code > class PTYPE, nximp_code IMPID>
CTYPE get_attributes (const PTYPE< IMPID > &parent)
 get attributes from an object More...
 
template<typename CTYPE , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
CTYPE get_attributes (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent)
 get attributes More...
 
template<typename OTYPE >
auto get_child (const OTYPE &o, const pni::core::string &n, const pni::core::string &c="") -> decltype(get_parent(o))
 get child by name and/or class More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
auto get_child (const OTYPE< IMPID > &parent, size_t index) -> decltype(get_parent(parent))
 get child by index More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
auto get_child (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &parent, size_t index) -> decltype(get_parent(parent))
 get child by index More...
 
template<typename CTYPE , typename OTYPE >
void get_children (const OTYPE &p, const string &c, CTYPE &container)
 
template<typename CTYPE , typename OTYPE >
CTYPE get_children (const OTYPE &parent, const string &c)
 get children with a common class More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
pni::core::string get_class (const OTYPE< IMPID > &group)
 get the class of a group More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::string get_class (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get group class More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
pni::core::string get_filename (const OTYPE< IMPID > &o)
 get filename More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::string get_filename (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get filename More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
pni::core::string get_name (const OTYPE< IMPID > &o)
 get object name More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::string get_name (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get name More...
 
template<typename OTYPE , typename PATHT >
auto get_object (const OTYPE &o, const PATHT &path) -> decltype(get_parent(o))
 retrieve an object from path More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
nxobject_trait< IMPID >
::object_type 
get_parent (const OTYPE< IMPID > &o)
 return parent More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
nxobject< GTYPE, FTYPE, ATYPE,
LTYPE > 
get_parent (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get parent More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
pni::core::string get_path (const OTYPE< IMPID > &o)
 get object path More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::string get_path (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get path More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
size_t get_rank (const OTYPE< IMPID > &o)
 get rank More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
size_t get_rank (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get rank More...
 
template<typename OTYPE >
auto get_root (const OTYPE &p) -> decltype(get_parent(p))
 get root More...
 
template<typename CTYPE , template< nximp_code > class OTYPE, nximp_code IMPID>
CTYPE get_shape (const OTYPE< IMPID > &object)
 get shape More...
 
template<typename CTYPE , typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
CTYPE get_shape (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get shape More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
size_t get_size (const OTYPE< IMPID > &o)
 get number of elements More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
size_t get_size (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get size More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
pni::core::type_id_t get_type (const OTYPE< IMPID > &o)
 get type More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::type_id_t get_type (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get type More...
 
template<typename FTYPE >
pni::core::string get_unit (const FTYPE &field)
 get the unit of a field More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::string get_unit (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get unit More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
void grow (OTYPE< IMPID > &o, size_t dimension=0, size_t extend=1)
 grow a field More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
void grow (nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, size_t d=0, size_t e=1)
 grow object More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
bool is_attribute (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o) noexcept
 check if attribute More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
bool is_class (const OTYPE< IMPID > &object, const pni::core::string &type)
 checks group type More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
bool is_class (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, const pni::core::string &c)
 is class function More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
bool is_field (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o) noexcept
 check if field More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
bool is_group (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o) noexcept
 test for group More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
bool is_link (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o) noexcept
 test for group More...
 
template<typename OTYPE >
bool is_valid (const OTYPE &o) noexcept
 visitor checking object validity More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
bool is_valid (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o) noexcept
 is_valid wrapper More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
auto begin (const OTYPE< IMPID > &group) -> decltype(group.begin())
 get iterator to first element More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
auto end (const OTYPE< IMPID > &group) -> decltype(group.end())
 get iterator to last element More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
GTYPE::iterator begin (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get iterator to first child More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
GTYPE::iterator end (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o)
 get iterator to last+1 child More...
 
template<typename OTYPE >
OTYPE get_object_by_name (const OTYPE &parent, const pni::core::string &name)
 search for object by name More...
 
template<typename OTYPE >
OTYPE get_object_by_name_and_class (const OTYPE &parent, const pni::core::string &name, const pni::core::string &c)
 search for object by name and class More...
 
template<typename OTYPE >
OTYPE get_object_by_class (const OTYPE &parent, pni::core::string c)
 find object by class More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID, typename ATYPE >
void read (const OTYPE< IMPID > &o, ATYPE &a)
 read data More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID, typename ATYPE , typename... ITYPES>
void read (const OTYPE< IMPID > &o, ATYPE &a, ITYPES...indices)
 read data More...
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename ATTYPE , typename LTYPE , typename... ITYPES>
void read (const nxobject< GTYPE, FTYPE, ATTYPE, LTYPE > &o, ATYPE &a, ITYPES...indices)
 read data from a field or attribute More...
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename ATTYPE , typename LTYPE , typename... ITYPES>
void read (nxobject< GTYPE, FTYPE, ATTYPE, LTYPE > &&o, ATYPE &a, ITYPES...indices)
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename ATTYPE , typename LTYPE >
void read (const nxobject< GTYPE, FTYPE, ATTYPE, LTYPE > &o, ATYPE &a, const std::vector< pni::core::slice > &sel)
 read data from a field or attribute More...
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename ATTYPE , typename LTYPE >
void read (nxobject< GTYPE, FTYPE, ATTYPE, LTYPE > &&o, ATYPE &a, const std::vector< pni::core::slice > &sel)
 
template<template< nximp_code > class OTYPE, nximp_code IMPID>
void set_class (const OTYPE< IMPID > &o, const pni::core::string &nxclass)
 set class for a group More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
void set_class (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, const pni::core::string &c)
 set class More...
 
template<typename FTYPE >
void set_unit (const FTYPE &field, const pni::core::string &value)
 set the unit More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
void set_unit (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &o, const pni::core::string &s)
 set unit More...
 
nxpath get_path (const nxpath &p) noexcept
 get path More...
 
nxpath get_path (const pni::core::string &p)
 get path More...
 
nxpath get_attribute_path (const pni::core::string &p)
 get attribute path More...
 
nxpath get_attribute_path (const nxpath &p) noexcept
 get attribute path More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID, typename ATYPE >
void write (const OTYPE< IMPID > &o, const ATYPE &a)
 write data to an attribute or field More...
 
template<template< nximp_code > class OTYPE, nximp_code IMPID, typename ATYPE , typename... ITYPES>
void write (const OTYPE< IMPID > &o, const ATYPE &a, ITYPES...indices)
 write data to an attribute or field More...
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename AATYPE , typename LTYPE , typename... ITYPES>
void write (nxobject< GTYPE, FTYPE, AATYPE, LTYPE > &&o, const ATYPE &a, ITYPES...indices)
 write wrapper More...
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename AATYPE , typename LTYPE , typename... ITYPES>
void write (const nxobject< GTYPE, FTYPE, AATYPE, LTYPE > &o, const ATYPE &a, ITYPES...indices)
 
template<typename ATYPE , typename GTYPE , typename FTYPE , typename AATYPE , typename LTYPE >
void write (const nxobject< GTYPE, FTYPE, AATYPE, LTYPE > &o, const ATYPE &a, const std::vector< pni::core::slice > &sel)
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
flat_group< GTYPE< IMPID > > make_flat (const GTYPE< IMPID > &group)
 create a flat group More...
 
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
flat_group< GTYPE > make_flat (const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &object)
 create a flat group More...
 
template<typename CTYPE , template< nximp_code > class GTYPE, nximp_code IMPID>
void get_links (const GTYPE< IMPID > &parent, CTYPE &container)
 get list of links More...
 
template<typename CTYPE , template< nximp_code > class GTYPE, nximp_code IMPID>
CTYPE get_links (const GTYPE< IMPID > &parent)
 get links below a group More...
 
template<typename CTYPE , template< nximp_code > class GTYPE, nximp_code IMPID>
void get_links_recursive (const GTYPE< IMPID > &parent, CTYPE &container)
 get links recursively More...
 
template<typename CTYPE , template< nximp_code > class GTYPE, nximp_code IMPID>
CTYPE get_links_recursive (const GTYPE< IMPID > &parent)
 get links recursively More...
 
 NXIMPCODEMAPDECL (h5::nxfile, nximp_code::HDF5)
 
 NXIMPCODEMAPDECL (h5::nxgroup, nximp_code::HDF5)
 
 NXIMPCODEMAPDECL (h5::nxfield, nximp_code::HDF5)
 
 NXIMPCODEMAPDECL (h5::nxattribute, nximp_code::HDF5)
 
 NXIMPCODEMAPDECL (h5::nxlink, nximp_code::HDF5)
 
template<nximp_code IMPID>
bool operator== (const nxgroup< IMPID > &a, const nxgroup< IMPID > &b)
 group equality check More...
 
template<nximp_code IMPID>
bool operator!= (const nxgroup< IMPID > &a, const nxgroup< IMPID > &b)
 group inequality check More...
 
void __check_target_path (const nxpath &target)
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
void link (const nxpath &target, const GTYPE< IMPID > &g, const pni::core::string &name)
 create a link More...
 
template<typename GTYPE >
void link (const pni::core::string &target, const GTYPE &g, const pni::core::string &name)
 create a link More...
 
template<typename GTYPE >
void link (const char *target, const GTYPE &g, const pni::core::string &name)
 create a link More...
 
template<typename STYPE , typename GTYPE >
void link (const STYPE &target, const GTYPE &g, const pni::core::string &name)
 create a link More...
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto link_type (const GTYPE< IMPID > &parent, const pni::core::string &name) -> nxlink_type
 return link type More...
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto link_name (const GTYPE< IMPID > &parent, size_t index) -> pni::core::string
 get link name More...
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto link_target (const GTYPE< IMPID > &parent, const pni::core::string &lname) -> nxpath
 get link target More...
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto link_target (const GTYPE< IMPID > &parent, size_t index) -> nxpath
 get link target More...
 
template<typename GTYPE >
bool is_external_link (const GTYPE &parent, const pni::core::string &name)
 return true if link is external More...
 
template<typename GTYPE >
bool is_soft_link (const GTYPE &parent, const pni::core::string &name)
 return true if link is soft More...
 
template<typename GTYPE >
bool is_hard_link (const GTYPE &parent, const pni::core::string &name)
 return true if link is hard More...
 
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto link_status (const GTYPE< IMPID > parent, const pni::core::string &lname) -> nxlink_status
 
std::ostream & operator<< (std::ostream &stream, const nxlink_type &ltype)
 ouput operator for link type enumeration More...
 
std::ostream & operator<< (std::ostream &stream, const nxlink_status &stat)
 
bool match (const pni::core::string &a, const pni::core::string &b)
 check if two paths are matching More...
 
bool match (const nxpath &a, const nxpath &b)
 check if paths are matching More...
 
bool match (const nxpath::element_type &a, const nxpath::element_type &b)
 check if path elements match More...
 
nxpath::element_type object_element (const pni::core::string &name, const pni::core::string &type)
 create object element More...
 
nxpath make_relative (const nxpath &parent_path, const nxpath &orig_path)
 
nxpath make_relative (const pni::core::string &parent_path, const pni::core::string &orig_string)
 
nxpath make_relative (const nxpath &parent_path, const pni::core::string &orig_path)
 
nxpath make_relative (const pni::core::string &parent_path, const nxpath &orig_path)
 
void throw_if_empty (const nxpath::element_type &e, const pni::core::exception_record &r)
 
void split_path (const nxpath &p, size_t s, nxpath &p1, nxpath &p2)
 
void split_last (const nxpath &p, nxpath &gpath, nxpath &opath)
 
bool has_file_section (const nxpath &p)
 
bool has_attribute_section (const nxpath &p)
 
bool is_root_element (const nxpath::element_type &e)
 
bool is_absolute (const nxpath &p)
 
bool has_name (const nxpath::element_type &e)
 
bool has_class (const nxpath::element_type &e)
 
bool is_complete (const nxpath::element_type &e)
 
bool is_empty (const nxpath &p)
 
nxpath join (const nxpath &a, const nxpath &b)
 
std::istream & operator>> (std::istream &i, nxpath &p)
 
bool rule_1 (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool rule_2_applies (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool both_no_name (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool both_no_class (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool both_have_name (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool both_have_class (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool rule_3_applies (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool rule_3 (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool operator== (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool operator!= (const nxpath::element_type &a, const nxpath::element_type &b)
 
bool operator== (const nxpath &lhs, const nxpath &rhs)
 
bool operator!= (const nxpath &lhs, const nxpath &rhs)
 
std::ostream & operator<< (std::ostream &stream, const nxpath::element_type &e)
 
std::ostream & operator<< (std::ostream &stream, const nxpath &p)
 

Variables

boost::phoenix::function
< stl::insert > const 
insert = stl::insert()
 

Typedef Documentation

template<typename VTYPE , int i>
using pni::io::nx::nxobject_element = typedef boost::mpl::at<typename VTYPE::types,boost::mpl::int_<i>>

Function Documentation

void pni::io::nx::__check_target_path ( const nxpath &  target)
bool pni::io::nx::both_have_class ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
inline
bool pni::io::nx::both_have_name ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
inline
bool pni::io::nx::both_no_class ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
inline
bool pni::io::nx::both_no_name ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
inline
template<typename OTYPE >
void pni::io::nx::close ( OTYPE &  o)
template<typename CTYPE , typename OTYPE >
void pni::io::nx::get_children ( const OTYPE &  p,
const string &  c,
CTYPE &  container 
)
template<typename GTYPE , typename FTYPE , typename ATYPE , typename LTYPE >
pni::core::string pni::io::nx::get_unit ( const nxobject< GTYPE, FTYPE, ATYPE, LTYPE > &  o)

Wrapper function for the get_unit_visitor. It returns the the unit string associated with a field stored in the variant type. If the object stored is not a field exceptions are thrown. If a field does not posses a unit attribute an empty string is returned.

Template Parameters
invalid_object_errorif the field is not valid
shape_mismatch_errorif the unit attribute is not scalar
io_errorif reading the attribute failed
type_errorif the type used for the units attribute is not supported
object_errorin case of any other error
GTYPEgroup type
FTYPEfield type
ATYPEattribute type
LTYPElink type
Returns
unit string
bool pni::io::nx::has_attribute_section ( const nxpath &  p)
bool pni::io::nx::has_class ( const nxpath::element_type &  e)
bool pni::io::nx::has_file_section ( const nxpath &  p)
bool pni::io::nx::has_name ( const nxpath::element_type &  e)
bool pni::io::nx::is_absolute ( const nxpath &  p)
bool pni::io::nx::is_complete ( const nxpath::element_type &  e)
bool pni::io::nx::is_empty ( const nxpath &  p)
bool pni::io::nx::is_root_element ( const nxpath::element_type &  e)
nxpath pni::io::nx::join ( const nxpath &  a,
const nxpath &  b 
)
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto pni::io::nx::link_name ( const GTYPE< IMPID > &  parent,
size_t  index 
) -> pni::core::string

Return the name of a link below parent. The link is determined by its index.

Exceptions
invalid_object_errorif parent is not a valid group
index_errorif index exceeds the total number of links below parent
object_errorin case of any other error
Template Parameters
GTYPEgroup type template
IMPIDiplementation ID template parameter
Parameters
parentreference to the parent group
indexthe index of the link
Returns
name of the link as string
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto pni::io::nx::link_status ( const GTYPE< IMPID >  parent,
const pni::core::string &  lname 
) -> nxlink_status
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto pni::io::nx::link_target ( const GTYPE< IMPID > &  parent,
const pni::core::string &  lname 
) -> nxpath

Return the target of link lname below parent as instance of nxpath.

Exceptions
invalid_object_errorif parent is not a valid group
key_errorif parent has not link lname
link_errorif the information cannot be retrieved
object_errorin case of any other error
Template Parameters
GTYPEgroup type template
IMPIDimplemenation ID template parameter
Parameters
parentreference to the parent group
lnamename of the link
Returns
target of the link as nxpath instance
template<template< nximp_code > class GTYPE, nximp_code IMPID>
auto pni::io::nx::link_target ( const GTYPE< IMPID > &  parent,
size_t  index 
) -> nxpath

Return the target of a link determined by index below group parent.

Exceptions
invalid_object_errorif parent is not a valid group
index_errorif index exceeds the total number of links below parent
link_errorif the information cannot be retrieved
object_errorin case of any other error
Template Parameters
GTYPEgroup type template
IMPIDimplemenation ID template parameter
Parameters
parentreference to the parent group
indexthe numeric index of the link
Returns
target of the link as nxpath instance
nxpath pni::io::nx::make_relative ( const nxpath &  parent_path,
const nxpath &  orig_path 
)
nxpath pni::io::nx::make_relative ( const pni::core::string &  parent_path,
const pni::core::string &  orig_string 
)
nxpath pni::io::nx::make_relative ( const nxpath &  parent_path,
const pni::core::string &  orig_path 
)
nxpath pni::io::nx::make_relative ( const pni::core::string &  parent_path,
const nxpath &  orig_path 
)
pni::io::nx::NXIMPCODEMAPDECL ( h5::nxfile  ,
nximp_code::HDF5   
)
pni::io::nx::NXIMPCODEMAPDECL ( h5::nxgroup  ,
nximp_code::HDF5   
)
pni::io::nx::NXIMPCODEMAPDECL ( h5::nxfield  ,
nximp_code::HDF5   
)
pni::io::nx::NXIMPCODEMAPDECL ( h5::nxattribute  ,
nximp_code::HDF5   
)
pni::io::nx::NXIMPCODEMAPDECL ( h5::nxlink  ,
nximp_code::HDF5   
)
bool pni::io::nx::operator!= ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
bool pni::io::nx::operator!= ( const nxpath &  lhs,
const nxpath &  rhs 
)
std::ostream & pni::io::nx::operator<< ( std::ostream &  stream,
const nxlink_status &  stat 
)
std::ostream& pni::io::nx::operator<< ( std::ostream &  stream,
const nxpath::element_type &  e 
)
std::ostream& pni::io::nx::operator<< ( std::ostream &  stream,
const nxpath &  p 
)
bool pni::io::nx::operator== ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
bool pni::io::nx::operator== ( const nxpath &  lhs,
const nxpath &  rhs 
)
std::istream& pni::io::nx::operator>> ( std::istream &  i,
nxpath &  p 
)
template<typename ATYPE , typename GTYPE , typename FTYPE , typename ATTYPE , typename LTYPE , typename... ITYPES>
void pni::io::nx::read ( nxobject< GTYPE, FTYPE, ATTYPE, LTYPE > &&  o,
ATYPE &  a,
ITYPES...  indices 
)
template<typename ATYPE , typename GTYPE , typename FTYPE , typename ATTYPE , typename LTYPE >
void pni::io::nx::read ( nxobject< GTYPE, FTYPE, ATTYPE, LTYPE > &&  o,
ATYPE &  a,
const std::vector< pni::core::slice > &  sel 
)
bool pni::io::nx::rule_1 ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
bool pni::io::nx::rule_2_applies ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
bool pni::io::nx::rule_3 ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
bool pni::io::nx::rule_3_applies ( const nxpath::element_type &  a,
const nxpath::element_type &  b 
)
void pni::io::nx::split_last ( const nxpath &  p,
nxpath &  gpath,
nxpath &  opath 
)
void pni::io::nx::split_path ( const nxpath &  p,
size_t  s,
nxpath &  p1,
nxpath &  p2 
)
void pni::io::nx::throw_if_empty ( const nxpath::element_type &  e,
const pni::core::exception_record &  r 
)
template<typename ATYPE , typename GTYPE , typename FTYPE , typename AATYPE , typename LTYPE , typename... ITYPES>
void pni::io::nx::write ( const nxobject< GTYPE, FTYPE, AATYPE, LTYPE > &  o,
const ATYPE &  a,
ITYPES...  indices 
)
template<typename ATYPE , typename GTYPE , typename FTYPE , typename AATYPE , typename LTYPE >
void pni::io::nx::write ( const nxobject< GTYPE, FTYPE, AATYPE, LTYPE > &  o,
const ATYPE &  a,
const std::vector< pni::core::slice > &  sel 
)

Variable Documentation

boost::phoenix::function<stl::insert> const pni::io::nx::insert = stl::insert()