Initial Commit
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
// Copyright (C) Vladimir Prus 2003.
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// See http://www.boost.org/libs/graph/vector_property_map.html for
|
||||
// documentation.
|
||||
//
|
||||
|
||||
#ifndef BOOST_PROPERTY_MAP_PARALLEL_VECTOR_PROPERTY_MAP_HPP_VP_2003_03_04
|
||||
#define BOOST_PROPERTY_MAP_PARALLEL_VECTOR_PROPERTY_MAP_HPP_VP_2003_03_04
|
||||
|
||||
#include <boost/property_map/property_map.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <vector>
|
||||
#include <boost/property_map/parallel/distributed_property_map.hpp>
|
||||
#include <boost/property_map/parallel/local_property_map.hpp>
|
||||
|
||||
namespace boost {
|
||||
|
||||
/** Distributed vector property map.
|
||||
*
|
||||
* This specialization of @ref vector_property_map builds a
|
||||
* distributed vector property map given the local index maps
|
||||
* generated by distributed graph types that automatically have index
|
||||
* properties.
|
||||
*
|
||||
* This specialization is useful when creating external distributed
|
||||
* property maps via the same syntax used to create external
|
||||
* sequential property maps.
|
||||
*/
|
||||
template<typename T, typename ProcessGroup, typename GlobalMap,
|
||||
typename StorageMap>
|
||||
class vector_property_map<T,
|
||||
local_property_map<ProcessGroup, GlobalMap,
|
||||
StorageMap> >
|
||||
: public parallel::distributed_property_map<
|
||||
ProcessGroup, GlobalMap, vector_property_map<T, StorageMap> >
|
||||
{
|
||||
typedef vector_property_map<T, StorageMap> local_iterator_map;
|
||||
|
||||
typedef parallel::distributed_property_map<ProcessGroup, GlobalMap,
|
||||
local_iterator_map> inherited;
|
||||
|
||||
typedef local_property_map<ProcessGroup, GlobalMap, StorageMap> index_map_type;
|
||||
|
||||
public:
|
||||
vector_property_map(const index_map_type& index = index_map_type())
|
||||
: inherited(index.process_group(), index.global(),
|
||||
local_iterator_map(index.base())) { }
|
||||
|
||||
vector_property_map(unsigned inital_size,
|
||||
const index_map_type& index = index_map_type())
|
||||
: inherited(index.process_group(), index.global(),
|
||||
local_iterator_map(inital_size, index.base())) { }
|
||||
};
|
||||
|
||||
/** Distributed vector property map.
|
||||
*
|
||||
* This specialization of @ref vector_property_map builds a
|
||||
* distributed vector property map given the local index maps
|
||||
* generated by distributed graph types that automatically have index
|
||||
* properties.
|
||||
*
|
||||
* This specialization is useful when creating external distributed
|
||||
* property maps via the same syntax used to create external
|
||||
* sequential property maps.
|
||||
*/
|
||||
template<typename T, typename ProcessGroup, typename GlobalMap,
|
||||
typename StorageMap>
|
||||
class vector_property_map<
|
||||
T,
|
||||
parallel::distributed_property_map<
|
||||
ProcessGroup,
|
||||
GlobalMap,
|
||||
StorageMap
|
||||
>
|
||||
>
|
||||
: public parallel::distributed_property_map<
|
||||
ProcessGroup, GlobalMap, vector_property_map<T, StorageMap> >
|
||||
{
|
||||
typedef vector_property_map<T, StorageMap> local_iterator_map;
|
||||
|
||||
typedef parallel::distributed_property_map<ProcessGroup, GlobalMap,
|
||||
local_iterator_map> inherited;
|
||||
|
||||
typedef parallel::distributed_property_map<ProcessGroup, GlobalMap,
|
||||
StorageMap>
|
||||
index_map_type;
|
||||
|
||||
public:
|
||||
vector_property_map(const index_map_type& index = index_map_type())
|
||||
: inherited(index.process_group(), index.global(),
|
||||
local_iterator_map(index.base())) { }
|
||||
|
||||
vector_property_map(unsigned inital_size,
|
||||
const index_map_type& index = index_map_type())
|
||||
: inherited(index.process_group(), index.global(),
|
||||
local_iterator_map(inital_size, index.base())) { }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // BOOST_PROPERTY_MAP_PARALLEL_VECTOR_PROPERTY_MAP_HPP_VP_2003_03_04
|
||||
Reference in New Issue
Block a user