libebml_ng
Classes | Namespaces | Macros | Typedefs
lazyload.h File Reference
#include <unordered_map>
#include <map>
#include <unordered_set>
#include <mutex>
#include <shared_mutex>
#include "base/ebmlMasterElement.h"
#include "base/ebmlMasterElementClass.h"
#include "../ptrs.h"
#include "../seekdata.h"
#include "../exceptions.h"
#include "../ebmlDataElement.h"

Go to the source code of this file.

Classes

class  ebml::status_t< T >
 
class  ebml::prepared_base_t
 
class  ebml::prepared_insert_t
 
class  ebml::prepared_move_t
 
class  ebml::prepared_resize_t
 
class  ebml::upgradedLock_t
 
class  ebml::localReadLock_t
 
class  ebml::localWriteLock_t
 
class  ebml::childElemHelper_t
 
class  ebml::ebmlLazyLoadClass
 
class  ebml::ebmlLazyLoad
 Represents an EBML Master Element with on-disk, transactional child management. More...
 

Namespaces

 ebml
 

Macros

#define DECL_GETBYKEY_MEMBERS(K)
 
#define INST_GETBYKEY_MEMBERS(K)
 
#define DECL_GETBYKEY_MEMBERS2(T, K)
 
#define INST_GETBYKEY_MEMBERS2(T, K)
 
#define DECL_GET_MEMBERS(T)
 
#define INST_GET_MEMBERS(T)
 

Typedefs

typedef std::unique_lock< std::shared_mutex > ebml::globalWriteLock_t
 

Macro Definition Documentation

◆ DECL_GET_MEMBERS

#define DECL_GET_MEMBERS (   T)
Value:
extern template ebml::ptr<T> ebmlLazyLoad::get<T>(off_t); \
extern template ebml::ptr<T> ebmlLazyLoad::get<T>(ebmlID_t, size_t); \
extern template ebml::ptr<T> ebmlLazyLoad::_get<T>(off_t); \
extern template ebml::ptr<T> ebmlLazyLoad::_get<T>(ebmlID_t, size_t); \
extern template ptr<const T> ebmlLazyLoad::cget<const T>(off_t) const; \
extern template ptr<const T> ebmlLazyLoad::cget<const T>(ebmlID_t, size_t) const; \
extern template ptr<const T> ebmlLazyLoad::_cget<const T>(off_t) const; \
extern template ptr<const T> ebmlLazyLoad::_cget<const T>(ebmlID_t, size_t) const; \
DECL_GETBYKEY_MEMBERS2(T, unsigned long long) \
DECL_GETBYKEY_MEMBERS2(T, long long) \
DECL_GETBYKEY_MEMBERS2(T, std::string) \
DECL_GETBYKEY_MEMBERS2(T, std::wstring) \
DECL_GETBYKEY_MEMBERS2(T, double)
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
uint64_t ebmlID_t
Definition: ebmlID_t.h:7

◆ DECL_GETBYKEY_MEMBERS

#define DECL_GETBYKEY_MEMBERS (   K)
Value:
extern template ebmlElement_sp ebmlLazyLoad::getByKey<K>(ebmlID_t, const K&); \
extern template ebmlElement_sp ebmlLazyLoad::_getByKey<K>(ebmlID_t, const K&); \
extern template c_ebmlElement_sp ebmlLazyLoad::cgetByKey<K>(ebmlID_t, const K&); \
extern template c_ebmlElement_sp ebmlLazyLoad::_cgetByKey<K>(ebmlID_t, const K&); \
ptr< ebmlElement > ebmlElement_sp
Definition: ptrs.h:837
uint64_t ebmlID_t
Definition: ebmlID_t.h:7
ptr< const ebmlElement > c_ebmlElement_sp
Definition: ptrs.h:843

◆ DECL_GETBYKEY_MEMBERS2

#define DECL_GETBYKEY_MEMBERS2 (   T,
 
)
Value:
extern template ebml::ptr<T> ebmlLazyLoad::getByKey<T, K>(ebmlID_t, const K&); \
extern template ebml::ptr<T> ebmlLazyLoad::_getByKey<T, K>(ebmlID_t, const K&); \
extern template ptr<const T> ebmlLazyLoad::cgetByKey<const T, K>(ebmlID_t, const K&) const; \
extern template ptr<const T> ebmlLazyLoad::_cgetByKey<const T, K>(ebmlID_t, const K&) const;
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
uint64_t ebmlID_t
Definition: ebmlID_t.h:7

◆ INST_GET_MEMBERS

#define INST_GET_MEMBERS (   T)
Value:
template ebml::ptr<T> ebmlLazyLoad::get<T>(off_t); \
template ebml::ptr<T> ebmlLazyLoad::get<T>(ebmlID_t, size_t); \
template ebml::ptr<T> ebmlLazyLoad::_get<T>(off_t); \
template ebml::ptr<T> ebmlLazyLoad::_get<T>(ebmlID_t, size_t); \
template ptr<const T> ebmlLazyLoad::cget<const T>(off_t) const; \
template ptr<const T> ebmlLazyLoad::cget<const T>(ebmlID_t, size_t) const; \
template ptr<const T> ebmlLazyLoad::_cget<const T>(off_t) const; \
template ptr<const T> ebmlLazyLoad::_cget<const T>(ebmlID_t, size_t) const; \
INST_GETBYKEY_MEMBERS2(T, unsigned long long) \
INST_GETBYKEY_MEMBERS2(T, long long) \
INST_GETBYKEY_MEMBERS2(T, std::string) \
INST_GETBYKEY_MEMBERS2(T, std::wstring) \
INST_GETBYKEY_MEMBERS2(T, double)
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
uint64_t ebmlID_t
Definition: ebmlID_t.h:7

◆ INST_GETBYKEY_MEMBERS

#define INST_GETBYKEY_MEMBERS (   K)
Value:
template ebmlElement_sp ebmlLazyLoad::getByKey<K>(ebmlID_t, const K&); \
template ebmlElement_sp ebmlLazyLoad::_getByKey<K>(ebmlID_t, const K&); \
template c_ebmlElement_sp ebmlLazyLoad::cgetByKey<K>(ebmlID_t, const K&); \
template c_ebmlElement_sp ebmlLazyLoad::_cgetByKey<K>(ebmlID_t, const K&); \
ptr< ebmlElement > ebmlElement_sp
Definition: ptrs.h:837
uint64_t ebmlID_t
Definition: ebmlID_t.h:7
ptr< const ebmlElement > c_ebmlElement_sp
Definition: ptrs.h:843

◆ INST_GETBYKEY_MEMBERS2

#define INST_GETBYKEY_MEMBERS2 (   T,
 
)
Value:
template ebml::ptr<T> ebmlLazyLoad::getByKey<T, K>(ebmlID_t, const K&); \
template ebml::ptr<T> ebmlLazyLoad::_getByKey<T, K>(ebmlID_t, const K&); \
template ptr<const T> ebmlLazyLoad::cgetByKey<const T, K>(ebmlID_t, const K&) const; \
template ptr<const T> ebmlLazyLoad::_cgetByKey<const T, K>(ebmlID_t, const K&) const;
A drop-in replacement for std::shared_ptr tailored for EBML objects.
Definition: ptrs.h:27
uint64_t ebmlID_t
Definition: ebmlID_t.h:7