ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
storage::disk Class Reference

#include <storage.h>

Inheritance diagram for storage::disk:
storage::nop

Classes

class  descriptor
 
class  serializable
 

Public Member Functions

 disk ()
 

Static Public Member Functions

static diskinstance ()
 
static void init (const std::string &path)
 
static bool enabled ()
 
static std::string fp (size_t sid)
 
static size_t index ()
 
static void track (descriptor *d)
 
static void untrack (descriptor *d)
 
static void sync ()
 
template<class T >
static void fetch (serializable< T > &t)
 
template<class T >
static void prefetch (serializable< T > &t)
 
template<class T >
static void evict (serializable< T > &t)
 
template<class T >
static void drop (serializable< T > &t)
 
template<class T >
static void pin (serializable< T > &t)
 
template<class Matrix , class SymmGroup >
static void evict (MPSTensor< Matrix, SymmGroup > &t)
 
template<class T >
static void prefetch (T &o)
 
template<class T >
static void fetch (T &o)
 
template<class T >
static void evict (T &o)
 
template<class T >
static void drop (T &o)
 

Public Attributes

std::vector< descriptor * > queue
 
std::string path
 
bool active
 
size_t sid
 

Detailed Description

Definition at line 149 of file storage.h.

Constructor & Destructor Documentation

storage::disk::disk ( )
inline

Definition at line 259 of file storage.h.

259 : active(false), sid(0) {}
size_t sid
Definition: storage.h:263
bool active
Definition: storage.h:262

Member Function Documentation

template<class T >
static void storage::nop::drop ( T &  o)
inlinestaticinherited

Definition at line 77 of file storage.h.

77 {}
template<class T >
static void storage::disk::drop ( serializable< T > &  t)
inlinestatic

Definition at line 253 of file storage.h.

253 { if(enabled()) t.drop(); }
static bool enabled()
Definition: storage.h:229
static bool storage::disk::enabled ( )
inlinestatic

Definition at line 229 of file storage.h.

229  {
230  return instance().active;
231  }
static disk & instance()
Definition: storage.h:220
bool active
Definition: storage.h:262
template<class T >
static void storage::nop::evict ( T &  o)
inlinestaticinherited

Definition at line 76 of file storage.h.

76 {}
template<class T >
static void storage::disk::evict ( serializable< T > &  t)
inlinestatic

Definition at line 252 of file storage.h.

252 { if(enabled()) t.evict(); }
static bool enabled()
Definition: storage.h:229
template<class Matrix , class SymmGroup >
static void storage::disk::evict ( MPSTensor< Matrix, SymmGroup > &  t)
inlinestatic

Definition at line 257 of file storage.h.

257 { }
template<class T >
static void storage::nop::fetch ( T &  o)
inlinestaticinherited

Definition at line 75 of file storage.h.

75 {}
template<class T >
static void storage::disk::fetch ( serializable< T > &  t)
inlinestatic

Definition at line 250 of file storage.h.

250 { if(enabled()) t.fetch(); }
static bool enabled()
Definition: storage.h:229
static std::string storage::disk::fp ( size_t  sid)
inlinestatic

Definition at line 232 of file storage.h.

232  {
233  return (instance().path + boost::lexical_cast<std::string>(sid));
234  }
std::string path
Definition: storage.h:261
static disk & instance()
Definition: storage.h:220
size_t sid
Definition: storage.h:263
static size_t storage::disk::index ( )
inlinestatic

Definition at line 235 of file storage.h.

235  {
236  return instance().sid++;
237  }
static disk & instance()
Definition: storage.h:220
size_t sid
Definition: storage.h:263
static void storage::disk::init ( const std::string &  path)
inlinestatic

Definition at line 224 of file storage.h.

224  {
225  maquis::cout << "Temporary storage enabled in " << path << "\n";
226  instance().active = true;
227  instance().path = path;
228  }
std::string path
Definition: storage.h:261
static disk & instance()
Definition: storage.h:220
bool active
Definition: storage.h:262
static disk& storage::disk::instance ( )
inlinestatic

Definition at line 220 of file storage.h.

220  {
221  static disk singleton;
222  return singleton;
223  }
template<class T >
static void storage::disk::pin ( serializable< T > &  t)
inlinestatic

Definition at line 254 of file storage.h.

254 { }
template<class T >
static void storage::nop::prefetch ( T &  o)
inlinestaticinherited

Definition at line 74 of file storage.h.

74 {}
template<class T >
static void storage::disk::prefetch ( serializable< T > &  t)
inlinestatic

Definition at line 251 of file storage.h.

251 { if(enabled()) t.prefetch(); }
static bool enabled()
Definition: storage.h:229
static void storage::disk::sync ( )
inlinestatic

Definition at line 245 of file storage.h.

245  {
246  for(int i = 0; i < instance().queue.size(); ++i)
247  if(instance().queue[i]) instance().queue[i]->join();
248  instance().queue.clear();
249  }
static disk & instance()
Definition: storage.h:220
std::vector< descriptor * > queue
Definition: storage.h:260
static void storage::disk::track ( descriptor d)
inlinestatic

Definition at line 238 of file storage.h.

238  {
239  d->record = instance().queue.size();
240  instance().queue.push_back(d);
241  }
static disk & instance()
Definition: storage.h:220
std::vector< descriptor * > queue
Definition: storage.h:260
static void storage::disk::untrack ( descriptor d)
inlinestatic

Definition at line 242 of file storage.h.

242  {
243  instance().queue[d->record] = NULL;
244  }
static disk & instance()
Definition: storage.h:220
std::vector< descriptor * > queue
Definition: storage.h:260

Member Data Documentation

bool storage::disk::active

Definition at line 262 of file storage.h.

std::string storage::disk::path

Definition at line 261 of file storage.h.

std::vector<descriptor*> storage::disk::queue

Definition at line 260 of file storage.h.

size_t storage::disk::sid

Definition at line 263 of file storage.h.


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