Field3D
SparseFile::FileReferences Class Reference

#include <SparseFile.h>

Public Member Functions

template<class Data_T >
size_t append (typename Reference< Data_T >::Ptr ref)
 Appends a reference to the collection. This is specialized so that the correct data member is accessed. More...
 
template<>
size_t append (Reference< half >::Ptr ref)
 
template<>
size_t append (Reference< V3h >::Ptr ref)
 
template<>
size_t append (Reference< float >::Ptr ref)
 
template<>
size_t append (Reference< V3f >::Ptr ref)
 
template<>
size_t append (Reference< double >::Ptr ref)
 
template<>
size_t append (Reference< V3d >::Ptr ref)
 
template<class Data_T >
size_t numRefs () const
 Returns the number of file references of the corresponding collection. More...
 
template<>
size_t numRefs () const
 
template<>
size_t numRefs () const
 
template<>
size_t numRefs () const
 
template<>
size_t numRefs () const
 
template<>
size_t numRefs () const
 
template<>
size_t numRefs () const
 
template<class Data_T >
Reference< Data_T > * ref (size_t idx)
 Returns a reference to the index. This is specialized so that the correct data member is accessed. More...
 
template<>
Reference< half > * ref (size_t idx)
 
template<>
Reference< V3h > * ref (size_t idx)
 
template<>
Reference< float > * ref (size_t idx)
 
template<>
Reference< V3f > * ref (size_t idx)
 
template<>
Reference< double > * ref (size_t idx)
 
template<>
Reference< V3d > * ref (size_t idx)
 
 ~FileReferences ()
 

Private Types

typedef boost::mutex Mutex
 

Private Attributes

std::deque< Reference< double >::Ptr > m_dRefs
 
std::deque< Reference< float >::Ptr > m_fRefs
 
std::deque< Reference< half >::Ptr > m_hRefs
 
Mutex m_mutex
 
std::deque< Reference< V3d >::Ptr > m_vdRefs
 
std::deque< Reference< V3f >::Ptr > m_vfRefs
 
std::deque< Reference< V3h >::Ptr > m_vhRefs
 

Detailed Description

Definition at line 232 of file SparseFile.h.

Member Typedef Documentation

typedef boost::mutex SparseFile::FileReferences::Mutex
private

Definition at line 278 of file SparseFile.h.

Constructor & Destructor Documentation

SparseFile::FileReferences::~FileReferences ( )
inline

Definition at line 849 of file SparseFile.h.

850 {
851 #if !USE_SHPTR
852  for (size_t i = 0, end = m_hRefs.size(); i < end; ++i) {
853  delete m_hRefs[i];
854  }
855  for (size_t i = 0, end = m_fRefs.size(); i < end; ++i) {
856  delete m_fRefs[i];
857  }
858  for (size_t i = 0, end = m_dRefs.size(); i < end; ++i) {
859  delete m_dRefs[i];
860  }
861  for (size_t i = 0, end = m_vhRefs.size(); i < end; ++i) {
862  delete m_vhRefs[i];
863  }
864  for (size_t i = 0, end = m_vfRefs.size(); i < end; ++i) {
865  delete m_vfRefs[i];
866  }
867  for (size_t i = 0, end = m_vdRefs.size(); i < end; ++i) {
868  delete m_vdRefs[i];
869  }
870 #endif
871 }
std::deque< Reference< V3f >::Ptr > m_vfRefs
Definition: SparseFile.h:272
std::deque< Reference< V3d >::Ptr > m_vdRefs
Definition: SparseFile.h:274
std::deque< Reference< float >::Ptr > m_fRefs
Definition: SparseFile.h:271
std::deque< Reference< double >::Ptr > m_dRefs
Definition: SparseFile.h:273
std::deque< Reference< V3h >::Ptr > m_vhRefs
Definition: SparseFile.h:270
std::deque< Reference< half >::Ptr > m_hRefs
Definition: SparseFile.h:269

Member Function Documentation

template<class Data_T >
Reference<Data_T>* SparseFile::FileReferences::ref ( size_t  idx)

Returns a reference to the index. This is specialized so that the correct data member is accessed.

Referenced by SparseFileManager::deallocateBlock(), SparseFileManager::numLoadedBlocks(), numRefs(), SparseFileManager::resetCacheStatistics(), SparseFileManager::totalLoadedBlocks(), and SparseFileManager::totalLoads().

template<class Data_T >
size_t SparseFile::FileReferences::append ( typename Reference< Data_T >::Ptr  ref)

Appends a reference to the collection. This is specialized so that the correct data member is accessed.

Referenced by numRefs().

template<class Data_T >
size_t SparseFile::FileReferences::numRefs ( ) const
template<>
Reference<half>* SparseFile::FileReferences::ref ( size_t  idx)
inline

Definition at line 877 of file SparseFile.h.

878 {
879 #if USE_SHPTR
880  return m_hRefs[idx].get();
881 #else
882  return m_hRefs[idx];
883 #endif
884 }
std::deque< Reference< half >::Ptr > m_hRefs
Definition: SparseFile.h:269
template<>
Reference<V3h>* SparseFile::FileReferences::ref ( size_t  idx)
inline

Definition at line 890 of file SparseFile.h.

891 {
892 #if USE_SHPTR
893  return m_vhRefs[idx].get();
894 #else
895  return m_vhRefs[idx];
896 #endif
897 }
std::deque< Reference< V3h >::Ptr > m_vhRefs
Definition: SparseFile.h:270
template<>
Reference<float>* SparseFile::FileReferences::ref ( size_t  idx)
inline

Definition at line 903 of file SparseFile.h.

904 {
905 #if USE_SHPTR
906  return m_fRefs[idx].get();
907 #else
908  return m_fRefs[idx];
909 #endif
910 }
std::deque< Reference< float >::Ptr > m_fRefs
Definition: SparseFile.h:271
template<>
Reference<V3f>* SparseFile::FileReferences::ref ( size_t  idx)
inline

Definition at line 916 of file SparseFile.h.

917 {
918 #if USE_SHPTR
919  return m_vfRefs[idx].get();
920 #else
921  return m_vfRefs[idx];
922 #endif
923 }
std::deque< Reference< V3f >::Ptr > m_vfRefs
Definition: SparseFile.h:272
template<>
Reference<double>* SparseFile::FileReferences::ref ( size_t  idx)
inline

Definition at line 929 of file SparseFile.h.

930 {
931 #if USE_SHPTR
932  return m_dRefs[idx].get();
933 #else
934  return m_dRefs[idx];
935 #endif
936 }
std::deque< Reference< double >::Ptr > m_dRefs
Definition: SparseFile.h:273
template<>
Reference<V3d>* SparseFile::FileReferences::ref ( size_t  idx)
inline

Definition at line 942 of file SparseFile.h.

943 {
944 #if USE_SHPTR
945  return m_vdRefs[idx].get();
946 #else
947  return m_vdRefs[idx];
948 #endif
949 }
std::deque< Reference< V3d >::Ptr > m_vdRefs
Definition: SparseFile.h:274
template<>
size_t SparseFile::FileReferences::append ( Reference< half >::Ptr  ref)
inline

Definition at line 954 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

955 {
956  Mutex::scoped_lock lock(m_mutex);
957 
958  m_hRefs.push_back(ref);
959  return m_hRefs.size() - 1;
960 }
std::deque< Reference< half >::Ptr > m_hRefs
Definition: SparseFile.h:269
template<>
size_t SparseFile::FileReferences::append ( Reference< V3h >::Ptr  ref)
inline

Definition at line 965 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

966 {
967  Mutex::scoped_lock lock(m_mutex);
968 
969  m_vhRefs.push_back(ref);
970  return m_vhRefs.size() - 1;
971 }
std::deque< Reference< V3h >::Ptr > m_vhRefs
Definition: SparseFile.h:270
template<>
size_t SparseFile::FileReferences::append ( Reference< float >::Ptr  ref)
inline

Definition at line 976 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

977 {
978  Mutex::scoped_lock lock(m_mutex);
979 
980  m_fRefs.push_back(ref);
981  return m_fRefs.size() - 1;
982 }
std::deque< Reference< float >::Ptr > m_fRefs
Definition: SparseFile.h:271
template<>
size_t SparseFile::FileReferences::append ( Reference< V3f >::Ptr  ref)
inline

Definition at line 987 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

988 {
989  Mutex::scoped_lock lock(m_mutex);
990 
991  m_vfRefs.push_back(ref);
992  return m_vfRefs.size() - 1;
993 }
std::deque< Reference< V3f >::Ptr > m_vfRefs
Definition: SparseFile.h:272
template<>
size_t SparseFile::FileReferences::append ( Reference< double >::Ptr  ref)
inline

Definition at line 998 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

999 {
1000  Mutex::scoped_lock lock(m_mutex);
1001 
1002  m_dRefs.push_back(ref);
1003  return m_dRefs.size() - 1;
1004 }
std::deque< Reference< double >::Ptr > m_dRefs
Definition: SparseFile.h:273
template<>
size_t SparseFile::FileReferences::append ( Reference< V3d >::Ptr  ref)
inline

Definition at line 1009 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

1010 {
1011  Mutex::scoped_lock lock(m_mutex);
1012 
1013  m_vdRefs.push_back(ref);
1014  return m_vdRefs.size() - 1;
1015 }
std::deque< Reference< V3d >::Ptr > m_vdRefs
Definition: SparseFile.h:274
template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1020 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

1021 {
1022  Mutex::scoped_lock lock(m_mutex);
1023 
1024  return m_hRefs.size();
1025 }
std::deque< Reference< half >::Ptr > m_hRefs
Definition: SparseFile.h:269
template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1030 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

1031 {
1032  Mutex::scoped_lock lock(m_mutex);
1033 
1034  return m_vhRefs.size();
1035 }
std::deque< Reference< V3h >::Ptr > m_vhRefs
Definition: SparseFile.h:270
template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1040 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

1041 {
1042  Mutex::scoped_lock lock(m_mutex);
1043 
1044  return m_fRefs.size();
1045 }
std::deque< Reference< float >::Ptr > m_fRefs
Definition: SparseFile.h:271
template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1050 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

1051 {
1052  Mutex::scoped_lock lock(m_mutex);
1053 
1054  return m_vfRefs.size();
1055 }
std::deque< Reference< V3f >::Ptr > m_vfRefs
Definition: SparseFile.h:272
template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1060 of file SparseFile.h.

References SparseFile::Reference< Data_T >::m_mutex.

1061 {
1062  Mutex::scoped_lock lock(m_mutex);
1063 
1064  return m_dRefs.size();
1065 }
std::deque< Reference< double >::Ptr > m_dRefs
Definition: SparseFile.h:273
template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1070 of file SparseFile.h.

References append(), SparseFile::Reference< Data_T >::m_mutex, numRefs(), Msg::print(), ref(), and Msg::SevWarning.

1071 {
1072  Mutex::scoped_lock lock(m_mutex);
1073 
1074  return m_vdRefs.size();
1075 }
std::deque< Reference< V3d >::Ptr > m_vdRefs
Definition: SparseFile.h:274

Member Data Documentation

std::deque<Reference<half>::Ptr> SparseFile::FileReferences::m_hRefs
private

Definition at line 269 of file SparseFile.h.

std::deque<Reference<V3h>::Ptr> SparseFile::FileReferences::m_vhRefs
private

Definition at line 270 of file SparseFile.h.

std::deque<Reference<float>::Ptr> SparseFile::FileReferences::m_fRefs
private

Definition at line 271 of file SparseFile.h.

std::deque<Reference<V3f>::Ptr> SparseFile::FileReferences::m_vfRefs
private

Definition at line 272 of file SparseFile.h.

std::deque<Reference<double>::Ptr> SparseFile::FileReferences::m_dRefs
private

Definition at line 273 of file SparseFile.h.

std::deque<Reference<V3d>::Ptr> SparseFile::FileReferences::m_vdRefs
private

Definition at line 274 of file SparseFile.h.

Mutex SparseFile::FileReferences::m_mutex
mutableprivate

Definition at line 280 of file SparseFile.h.


The documentation for this class was generated from the following file: