• Main Page
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

/export/development/ViennaData/release/ViennaData-1.0.1/viennadata/forwards.h

Go to the documentation of this file.
00001 /* =======================================================================
00002    Copyright (c) 2010, Institute for Microelectronics, TU Vienna.
00003    http://www.iue.tuwien.ac.at
00004                              -----------------
00005                      ViennaData - The Vienna Data Storage Library
00006                              -----------------
00007 
00008    authors:    Karl Rupp                          rupp@iue.tuwien.ac.at
00009 
00010    license:    MIT (X11), see file LICENSE in the ViennaMesh base directory
00011 ======================================================================= */
00012 
00013 
00014 #ifndef VIENNADATA_FORWARDS_H
00015 #define VIENNADATA_FORWARDS_H
00016 
00017 #include <map>
00018 #include <vector>
00019 #include <list>
00020 #include <set>
00021 #include <iostream>
00022 #include <algorithm>
00023 #include <memory>
00024 
00039 namespace viennadata
00040 {
00041   
00043 
00044     //element identification:
00046     struct pointer_based_id {};      //use object address as ID
00048     struct object_provided_id {};   //object provides some ID with values in 0...N
00049 
00050 
00051     //storage policy tag:
00053     struct dense_data_tag {};      //for a property that is accessed on every element *and* is required to be fast
00055     struct sparse_data_tag {};     //properties that will be accessed on some elements only. Default policy.
00056 
00057     
00059     struct full_key_dispatch_tag {};
00061     struct type_key_dispatch_tag {};  //key dispatch based on type only
00062 
00063 
00064     
00066 
00072     template <typename KeyType,
00073               typename DataType,
00074               typename ObjectType>
00075     class data_container;
00076     
00078     struct all {};   //denotes all types
00079     
00081     template <typename ObjectType>
00082     class key_value_copy_construction;
00083     
00085     template <typename ObjectType>
00086     class key_value_copy_construction_wrapper;
00087   
00089     template <typename T>
00090     struct error_indicator {};
00091   
00092 } //namespace
00093 
00094 
00095 #endif

Generated on Wed Sep 14 2011 18:17:05 for ViennaData - The Vienna Data Storage Library by  doxygen 1.7.1