inline
  typename local_property_map<ProcessGroup, GlobalMap, StorageMap>::reference
  get(const local_property_map<ProcessGroup, GlobalMap, StorageMap>& pm, 
      typename local_property_map<ProcessGroup, GlobalMap, StorageMap>::key_type
        const & key)

  {
    typename property_traits<GlobalMap>::value_type p = get(pm.global(), key);
    return get(pm.base(), p.second);
  }
 inline void
 put(const local_property_map<ProcessGroup, GlobalMap, StorageMap>& pm, 
     typename local_property_map<ProcessGroup, GlobalMap, StorageMap>
                ::key_type const & key,
     typename local_property_map<ProcessGroup, GlobalMap, StorageMap>
                ::value_type const& v)
 {
   typename property_traits<GlobalMap>::value_type p = get(pm.global(), key);
   BOOST_ASSERT(p.first == process_id(pm.process_group()));
   put(pm.base(), p.second, v);
 }
示例#3
0
distributed_property_map<ProcessGroup, 
                         GlobalMap,
                         iterator_property_map<RandomAccessIterator, 
                                               StorageMap> >
make_iterator_property_map(RandomAccessIterator cc,
                           local_property_map<ProcessGroup, GlobalMap, 
                                              StorageMap> index_map)
{
  typedef distributed_property_map<
            ProcessGroup, GlobalMap,
            iterator_property_map<RandomAccessIterator, StorageMap> >
    result_type;
  return result_type(index_map.process_group(), index_map.global(),
                     make_iterator_property_map(cc, index_map.base()));
}