DriveHQ Start Menu
Cloud Drive Mapping
Folder Sync
Cloud Backup
True Drop Box
FTP/SFTP Hosting
Group Account
DriveHQ Start Menu
Online File Server
My Storage
|
Manage Shares
|
Publishes
|
Drop Boxes
|
Group Account
WebDAV Drive Mapping
Cloud Drive Home
|
WebDAV Guide
|
Drive Mapping Tool
|
Drive Mapping URL
Complete Data Backup
Backup Guide
|
Online Backup Tool
|
Cloud-to-Cloud Backup
FTP, Email & Web Service
FTP Home
|
FTP Hosting FAQ
|
Email Hosting
|
EmailManager
|
Web Hosting
Help & Resources
About
|
Enterprise Service
|
Partnership
|
Comparisons
|
Support
Quick Links
Security and Privacy
Download Software
Service Manual
Use Cases
Group Account
Online Help
Blog
Contact
Cloud Surveillance
Sign Up
Login
Features
Business Features
Online File Server
FTP Hosting
Cloud Drive Mapping
Cloud File Backup
Email Backup & Hosting
Cloud File Sharing
Folder Synchronization
Group Management
True Drop Box
Full-text Search
AD Integration/SSO
Mobile Access
IP Camera & DVR Solution
More...
Personal Features
Personal Cloud Drive
Backup All Devices
Mobile APPs
Personal Web Hosting
Sub-Account (for Kids)
Home/PC/Kids Monitoring
More...
Software
DriveHQ Drive Mapping Tool
DriveHQ FileManager
DriveHQ Online Backup
DriveHQ Mobile Apps
Pricing
Business Plans & Pricing
Personal Plans & Pricing
Price Comparison with Others
Feature Comparison with Others
Install Mobile App
Sign up
Creating account...
Invalid character in username! Only 0-9, a-z, A-Z, _, -, . allowed.
Username is required!
Invalid email address!
E-mail is required!
Password is required!
Password is invalid!
Password and confirmation do not match.
Confirm password is required!
I accept
Membership Agreement
Please read the Membership Agreement and check "I accept"!
Free Quick Sign-up
Sign-up Page
Log in
Signing in...
Username or e-mail address is required!
Password is required!
Keep me logged in
Quick Login
Forgot Password
Up
Upload
Download
Share
Publish
New Folder
New File
Copy
Cut
Delete
Paste
Rate
Upgrade
Rotate
Effect
Edit
Slide
History
//======================================================================= // Copyright 2002 Indiana University. // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek // // 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) //======================================================================= #ifndef BOOST_GRAPH_ARCHETYPES_HPP #define BOOST_GRAPH_ARCHETYPES_HPP #include
#include
namespace boost { // should use a different namespace for this namespace detail { struct null_graph_archetype : public null_archetype<> { struct traversal_category { }; }; } //=========================================================================== template
struct incidence_graph_archetype : public Base { typedef typename Base::traversal_category base_trav_cat; struct traversal_category : public incidence_graph_tag, public base_trav_cat { }; #if 0 typedef immutable_graph_tag mutability_category; #endif typedef Vertex vertex_descriptor; typedef unsigned int degree_size_type; typedef unsigned int vertices_size_type; typedef unsigned int edges_size_type; struct edge_descriptor { edge_descriptor() { } edge_descriptor(const detail::dummy_constructor&) { } bool operator==(const edge_descriptor&) const { return false; } bool operator!=(const edge_descriptor&) const { return false; } }; typedef input_iterator_archetype
out_edge_iterator; typedef Directed directed_category; typedef ParallelCategory edge_parallel_category; typedef void adjacency_iterator; typedef void in_edge_iterator; typedef void vertex_iterator; typedef void edge_iterator; }; template
V source(const typename incidence_graph_archetype
::edge_descriptor&, const incidence_graph_archetype
& ) { return V(static_object
::get()); } template
V target(const typename incidence_graph_archetype
::edge_descriptor&, const incidence_graph_archetype
& ) { return V(static_object
::get()); } template
std::pair
::out_edge_iterator, typename incidence_graph_archetype
::out_edge_iterator> out_edges(const V&, const incidence_graph_archetype
& ) { typedef typename incidence_graph_archetype
::out_edge_iterator Iter; return std::make_pair(Iter(), Iter()); } template
typename incidence_graph_archetype
::degree_size_type out_degree(const V&, const incidence_graph_archetype
& ) { return 0; } //=========================================================================== template
struct adjacency_graph_archetype : public Base { typedef typename Base::traversal_category base_trav_cat; struct traversal_category : public adjacency_graph_tag, public base_trav_cat { }; typedef Vertex vertex_descriptor; typedef unsigned int degree_size_type; typedef unsigned int vertices_size_type; typedef unsigned int edges_size_type; typedef void edge_descriptor; typedef input_iterator_archetype
adjacency_iterator; typedef Directed directed_category; typedef ParallelCategory edge_parallel_category; typedef void in_edge_iterator; typedef void out_edge_iterator; typedef void vertex_iterator; typedef void edge_iterator; }; template
std::pair
::adjacency_iterator, typename adjacency_graph_archetype
::adjacency_iterator> adjacent_vertices(const V&, const adjacency_graph_archetype
& ) { typedef typename adjacency_graph_archetype
::adjacency_iterator Iter; return std::make_pair(Iter(), Iter()); } template
typename adjacency_graph_archetype
::degree_size_type out_degree(const V&, const adjacency_graph_archetype
& ) { return 0; } //=========================================================================== template
struct vertex_list_graph_archetype : public Base { typedef incidence_graph_archetype
Incidence; typedef adjacency_graph_archetype
Adjacency; typedef typename Base::traversal_category base_trav_cat; struct traversal_category : public vertex_list_graph_tag, public base_trav_cat { }; #if 0 typedef immutable_graph_tag mutability_category; #endif typedef Vertex vertex_descriptor; typedef unsigned int degree_size_type; typedef typename Incidence::edge_descriptor edge_descriptor; typedef typename Incidence::out_edge_iterator out_edge_iterator; typedef typename Adjacency::adjacency_iterator adjacency_iterator; typedef input_iterator_archetype
vertex_iterator; typedef unsigned int vertices_size_type; typedef unsigned int edges_size_type; typedef Directed directed_category; typedef ParallelCategory edge_parallel_category; typedef void in_edge_iterator; typedef void edge_iterator; }; template
std::pair
::vertex_iterator, typename vertex_list_graph_archetype
::vertex_iterator> vertices(const vertex_list_graph_archetype
& ) { typedef typename vertex_list_graph_archetype
::vertex_iterator Iter; return std::make_pair(Iter(), Iter()); } template
typename vertex_list_graph_archetype
::vertices_size_type num_vertices(const vertex_list_graph_archetype
& ) { return 0; } // ambiguously inherited from incidence graph and adjacency graph template
typename vertex_list_graph_archetype
::degree_size_type out_degree(const V&, const vertex_list_graph_archetype
& ) { return 0; } //=========================================================================== struct property_graph_archetype_tag { }; template
struct property_graph_archetype : public GraphArchetype { typedef property_graph_archetype_tag graph_tag; typedef ValueArch vertex_property_type; typedef ValueArch edge_property_type; }; struct choose_edge_property_map_archetype { template
struct bind_ { typedef mutable_lvalue_property_map_archetype
type; typedef lvalue_property_map_archetype
const_type; }; }; template <> struct edge_property_selector
{ typedef choose_edge_property_map_archetype type; }; struct choose_vertex_property_map_archetype { template
struct bind_ { typedef mutable_lvalue_property_map_archetype
type; typedef lvalue_property_map_archetype
const_type; }; }; template <> struct vertex_property_selector
{ typedef choose_vertex_property_map_archetype type; }; template
typename property_map
, P>::type get(P, property_graph_archetype
&) { typename property_map
, P>::type pmap; return pmap; } template
typename property_map
, P>::const_type get(P, const property_graph_archetype
&) { typename property_map
, P>::const_type pmap; return pmap; } template
typename property_traits
, P>::const_type>::value_type get(P p, const property_graph_archetype
& g, K k) { return get( get(p, g), k); } template
void put(P p, property_graph_archetype
& g, const Key& key, const V& value) { typedef typename boost::property_map
, P>::type Map; Map pmap = get(p, g); put(pmap, key, value); } struct color_value_archetype { color_value_archetype() { } color_value_archetype(detail::dummy_constructor) { } bool operator==(const color_value_archetype& ) const { return true; } bool operator!=(const color_value_archetype& ) const { return true; } }; template <> struct color_traits
{ static color_value_archetype white() { return color_value_archetype (static_object
::get()); } static color_value_archetype gray() { return color_value_archetype (static_object
::get()); } static color_value_archetype black() { return color_value_archetype (static_object
::get()); } }; template
class buffer_archetype { public: void push(const T&) {} void pop() {} T& top() { return static_object
::get(); } const T& top() const { return static_object
::get(); } bool empty() const { return true; } }; } // namespace boost #endif // BOOST_GRAPH_ARCHETYPES_HPP
graph_archetypes.hpp
Page URL
File URL
Prev
33/95
Next
Download
( 10 KB )
Note: The DriveHQ service banners will NOT be displayed if the file owner is a paid member.
Comments
Total ratings:
0
Average rating:
Not Rated
Would you like to comment?
Join DriveHQ
for a free account, or
Logon
if you are already a member.