Field3D
SparseFile::FileReferences Class Reference

#include <SparseFile.h>

Public Member Functions

template<>
size_t append (Reference< double >::Ptr ref)
 
template<>
size_t append (Reference< float >::Ptr ref)
 
template<>
size_t append (Reference< half >::Ptr ref)
 
template<>
size_t append (Reference< V3d >::Ptr ref)
 
template<>
size_t append (Reference< V3f >::Ptr ref)
 
template<>
size_t append (Reference< V3h >::Ptr ref)
 
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.
 
long long int memSize () const
 Returns the memory use for the refs.
 
template<class Data_T >
size_t numRefs () const
 Returns the number of file references of the corresponding collection.
 
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.
 
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 265 of file SparseFile.h.

Member Typedef Documentation

◆ Mutex

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

Definition at line 314 of file SparseFile.h.

Constructor & Destructor Documentation

◆ ~FileReferences()

SparseFile::FileReferences::~FileReferences ( )
inline

Definition at line 896 of file SparseFile.h.

897{
898#if !USE_SHPTR
899 for (size_t i = 0, end = m_hRefs.size(); i < end; ++i) {
900 delete m_hRefs[i];
901 }
902 for (size_t i = 0, end = m_fRefs.size(); i < end; ++i) {
903 delete m_fRefs[i];
904 }
905 for (size_t i = 0, end = m_dRefs.size(); i < end; ++i) {
906 delete m_dRefs[i];
907 }
908 for (size_t i = 0, end = m_vhRefs.size(); i < end; ++i) {
909 delete m_vhRefs[i];
910 }
911 for (size_t i = 0, end = m_vfRefs.size(); i < end; ++i) {
912 delete m_vfRefs[i];
913 }
914 for (size_t i = 0, end = m_vdRefs.size(); i < end; ++i) {
915 delete m_vdRefs[i];
916 }
917#endif
918}
std::deque< Reference< double >::Ptr > m_dRefs
Definition SparseFile.h:309
std::deque< Reference< float >::Ptr > m_fRefs
Definition SparseFile.h:307
std::deque< Reference< V3d >::Ptr > m_vdRefs
Definition SparseFile.h:310
std::deque< Reference< V3f >::Ptr > m_vfRefs
Definition SparseFile.h:308
std::deque< Reference< half >::Ptr > m_hRefs
Definition SparseFile.h:305
std::deque< Reference< V3h >::Ptr > m_vhRefs
Definition SparseFile.h:306

References m_dRefs, m_fRefs, m_hRefs, m_vdRefs, m_vfRefs, and m_vhRefs.

Member Function Documentation

◆ ref() [1/7]

◆ append() [1/7]

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 SparseFileManager::getNextId().

◆ numRefs() [1/7]

template<class Data_T >
size_t SparseFile::FileReferences::numRefs ( ) const

Returns the number of file references of the corresponding collection.

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

◆ memSize()

long long int SparseFile::FileReferences::memSize ( ) const

Returns the memory use for the refs.

Definition at line 452 of file SparseFile.cpp.

453{
454 Mutex::scoped_lock lock(m_mutex);
455
456 long long int size = 0;
457
458 // Size of the std::deque's
459 size += m_hRefs.size() * sizeof(Reference<half>::Ptr);
460 size += m_vhRefs.size() * sizeof(Reference<V3h>::Ptr);
461 size += m_fRefs.size() * sizeof(Reference<float>::Ptr);
462 size += m_vfRefs.size() * sizeof(Reference<V3f>::Ptr);
463 size += m_dRefs.size() * sizeof(Reference<double>::Ptr);
464 size += m_vdRefs.size() * sizeof(Reference<V3d>::Ptr);
465
466 // Size of the references themselves
467 for (size_t i = 0, end = m_hRefs.size(); i < end; ++i) {
468 size += m_hRefs[i]->memSize();
469 }
470 for (size_t i = 0, end = m_vhRefs.size(); i < end; ++i) {
471 size += m_vhRefs[i]->memSize();
472 }
473 for (size_t i = 0, end = m_fRefs.size(); i < end; ++i) {
474 size += m_fRefs[i]->memSize();
475 }
476 for (size_t i = 0, end = m_vfRefs.size(); i < end; ++i) {
477 size += m_vfRefs[i]->memSize();
478 }
479 for (size_t i = 0, end = m_dRefs.size(); i < end; ++i) {
480 size += m_dRefs[i]->memSize();
481 }
482 for (size_t i = 0, end = m_vdRefs.size(); i < end; ++i) {
483 size += m_vdRefs[i]->memSize();
484 }
485
486 return size;
487}

References m_dRefs, m_fRefs, m_hRefs, m_mutex, m_vdRefs, m_vfRefs, and m_vhRefs.

Referenced by SparseFileManager::memSize().

◆ ref() [2/7]

template<>
Reference< half > * SparseFile::FileReferences::ref ( size_t idx)
inline

Definition at line 924 of file SparseFile.h.

925{
926#if USE_SHPTR
927 return m_hRefs[idx].get();
928#else
929 return m_hRefs[idx];
930#endif
931}

References m_hRefs.

◆ ref() [3/7]

template<>
Reference< V3h > * SparseFile::FileReferences::ref ( size_t idx)
inline

Definition at line 937 of file SparseFile.h.

938{
939#if USE_SHPTR
940 return m_vhRefs[idx].get();
941#else
942 return m_vhRefs[idx];
943#endif
944}

References m_vhRefs.

◆ ref() [4/7]

template<>
Reference< float > * SparseFile::FileReferences::ref ( size_t idx)
inline

Definition at line 950 of file SparseFile.h.

951{
952#if USE_SHPTR
953 return m_fRefs[idx].get();
954#else
955 return m_fRefs[idx];
956#endif
957}

References m_fRefs.

◆ ref() [5/7]

template<>
Reference< V3f > * SparseFile::FileReferences::ref ( size_t idx)
inline

Definition at line 963 of file SparseFile.h.

964{
965#if USE_SHPTR
966 return m_vfRefs[idx].get();
967#else
968 return m_vfRefs[idx];
969#endif
970}

References m_vfRefs.

◆ ref() [6/7]

template<>
Reference< double > * SparseFile::FileReferences::ref ( size_t idx)
inline

Definition at line 976 of file SparseFile.h.

977{
978#if USE_SHPTR
979 return m_dRefs[idx].get();
980#else
981 return m_dRefs[idx];
982#endif
983}

References m_dRefs.

◆ ref() [7/7]

template<>
Reference< V3d > * SparseFile::FileReferences::ref ( size_t idx)
inline

Definition at line 989 of file SparseFile.h.

990{
991#if USE_SHPTR
992 return m_vdRefs[idx].get();
993#else
994 return m_vdRefs[idx];
995#endif
996}

References m_vdRefs.

◆ append() [2/7]

template<>
size_t SparseFile::FileReferences::append ( Reference< half >::Ptr ref)
inline

Definition at line 1001 of file SparseFile.h.

1002{
1003 Mutex::scoped_lock lock(m_mutex);
1004
1005 m_hRefs.push_back(ref);
1006 return m_hRefs.size() - 1;
1007}
Reference< Data_T > * ref(size_t idx)
Returns a reference to the index. This is specialized so that the correct data member is accessed.

References m_hRefs, m_mutex, and ref().

◆ append() [3/7]

template<>
size_t SparseFile::FileReferences::append ( Reference< V3h >::Ptr ref)
inline

Definition at line 1012 of file SparseFile.h.

1013{
1014 Mutex::scoped_lock lock(m_mutex);
1015
1016 m_vhRefs.push_back(ref);
1017 return m_vhRefs.size() - 1;
1018}

References m_mutex, m_vhRefs, and ref().

◆ append() [4/7]

template<>
size_t SparseFile::FileReferences::append ( Reference< float >::Ptr ref)
inline

Definition at line 1023 of file SparseFile.h.

1024{
1025 Mutex::scoped_lock lock(m_mutex);
1026
1027 m_fRefs.push_back(ref);
1028 return m_fRefs.size() - 1;
1029}

References m_fRefs, m_mutex, and ref().

◆ append() [5/7]

template<>
size_t SparseFile::FileReferences::append ( Reference< V3f >::Ptr ref)
inline

Definition at line 1034 of file SparseFile.h.

1035{
1036 Mutex::scoped_lock lock(m_mutex);
1037
1038 m_vfRefs.push_back(ref);
1039 return m_vfRefs.size() - 1;
1040}

References m_mutex, m_vfRefs, and ref().

◆ append() [6/7]

template<>
size_t SparseFile::FileReferences::append ( Reference< double >::Ptr ref)
inline

Definition at line 1045 of file SparseFile.h.

1046{
1047 Mutex::scoped_lock lock(m_mutex);
1048
1049 m_dRefs.push_back(ref);
1050 return m_dRefs.size() - 1;
1051}

References m_dRefs, m_mutex, and ref().

◆ append() [7/7]

template<>
size_t SparseFile::FileReferences::append ( Reference< V3d >::Ptr ref)
inline

Definition at line 1056 of file SparseFile.h.

1057{
1058 Mutex::scoped_lock lock(m_mutex);
1059
1060 m_vdRefs.push_back(ref);
1061 return m_vdRefs.size() - 1;
1062}

References m_mutex, m_vdRefs, and ref().

◆ numRefs() [2/7]

template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1067 of file SparseFile.h.

1068{
1069 Mutex::scoped_lock lock(m_mutex);
1070
1071 return m_hRefs.size();
1072}

References m_hRefs, and m_mutex.

◆ numRefs() [3/7]

template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1077 of file SparseFile.h.

1078{
1079 Mutex::scoped_lock lock(m_mutex);
1080
1081 return m_vhRefs.size();
1082}

References m_mutex, and m_vhRefs.

◆ numRefs() [4/7]

template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1087 of file SparseFile.h.

1088{
1089 Mutex::scoped_lock lock(m_mutex);
1090
1091 return m_fRefs.size();
1092}

References m_fRefs, and m_mutex.

◆ numRefs() [5/7]

template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1097 of file SparseFile.h.

1098{
1099 Mutex::scoped_lock lock(m_mutex);
1100
1101 return m_vfRefs.size();
1102}

References m_mutex, and m_vfRefs.

◆ numRefs() [6/7]

template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1107 of file SparseFile.h.

1108{
1109 Mutex::scoped_lock lock(m_mutex);
1110
1111 return m_dRefs.size();
1112}

References m_dRefs, and m_mutex.

◆ numRefs() [7/7]

template<>
size_t SparseFile::FileReferences::numRefs ( ) const
inline

Definition at line 1117 of file SparseFile.h.

1118{
1119 Mutex::scoped_lock lock(m_mutex);
1120
1121 return m_vdRefs.size();
1122}

References m_mutex, and m_vdRefs.

Member Data Documentation

◆ m_hRefs

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

Definition at line 305 of file SparseFile.h.

Referenced by append(), memSize(), numRefs(), ref(), and ~FileReferences().

◆ m_vhRefs

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

Definition at line 306 of file SparseFile.h.

Referenced by append(), memSize(), numRefs(), ref(), and ~FileReferences().

◆ m_fRefs

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

Definition at line 307 of file SparseFile.h.

Referenced by append(), memSize(), numRefs(), ref(), and ~FileReferences().

◆ m_vfRefs

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

Definition at line 308 of file SparseFile.h.

Referenced by append(), memSize(), numRefs(), ref(), and ~FileReferences().

◆ m_dRefs

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

Definition at line 309 of file SparseFile.h.

Referenced by append(), memSize(), numRefs(), ref(), and ~FileReferences().

◆ m_vdRefs

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

Definition at line 310 of file SparseFile.h.

Referenced by append(), memSize(), numRefs(), ref(), and ~FileReferences().

◆ m_mutex

Mutex SparseFile::FileReferences::m_mutex
mutableprivate

Definition at line 316 of file SparseFile.h.

Referenced by append(), append(), append(), append(), append(), append(), memSize(), and numRefs().


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