libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents > Class Template Reference

#include <SharedMemory.hpp>

Inheritance diagram for jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >:
[legend]
Collaboration diagram for jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >:
[legend]

Classes

struct  private_data_block_type
 

Public Types

typedef contents contents_type
 

Public Member Functions

 RawSharedMemory (const HeapID &details, const DWORD protection=PAGE_READWRITE, HANDLE file=INVALID_HANDLE_VALUE)
 
virtual ~RawSharedMemory (void)
 
const std::string & Name (void) const noexcept(true)
 
virtual unsigned long Capacity (void) const noexcept(true)
 
virtual bool Capacity (const unsigned long sz, const DWORD protection=PAGE_READWRITE, HANDLE file=INVALID_HANDLE_VALUE)
 
bool IsCreator (void) const noexcept(true)
 
 operator const contents * () const
 
 operator contents * ()
 
NTUtils::Mutex & Lock (void) noexcept(true)
 
virtual std::ostream & operator<< (std::ostream &strm) const
 
virtual std::istream & operator>> (std::istream &strm)
 
unsigned long UsageCount (void) const noexcept(true)
 

Protected Member Functions

 RawSharedMemory (const unsigned long p, const HeapID &details, const DWORD protection=PAGE_READWRITE, HANDLE file=INVALID_HANDLE_VALUE)
 
contents * MapDataPtr (HANDLE file, const DWORD access, const DWORD hi_offset, const DWORD low_offset, const unsigned long size)
 
void UnmapDataPtr (const contents *)
 

Static Protected Member Functions

static unsigned long GetEndPrivateDataBlock (void) noexcept(true)
 

Protected Attributes

const NTUtils::SecuritySettings *const ss
 
NTUtils::Mutex mutex
 
HANDLE rw_pub_mapping
 
HANDLE ro_pub_mapping
 
contents * rw_raw_data
 
contents * rw_pub_data
 
const contents * ro_pub_data
 

Detailed Description

template<class contents>
class jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >

Definition at line 50 of file SharedMemory.hpp.

Member Typedef Documentation

◆ contents_type

template<class contents >
typedef contents jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::contents_type

Definition at line 52 of file SharedMemory.hpp.

Constructor & Destructor Documentation

◆ RawSharedMemory() [1/2]

template<class contents >
jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::RawSharedMemory ( const HeapID details,
const DWORD  protection = PAGE_READWRITE,
HANDLE  file = INVALID_HANDLE_VALUE 
)
inline

◆ ~RawSharedMemory()

◆ RawSharedMemory() [2/2]

template<class contents >
jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::RawSharedMemory ( const unsigned long  p,
const HeapID details,
const DWORD  protection = PAGE_READWRITE,
HANDLE  file = INVALID_HANDLE_VALUE 
)
inlineprotected

Member Function Documentation

◆ Capacity() [1/2]

template<class contents >
bool jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::Capacity ( const unsigned long  sz,
const DWORD  protection = PAGE_READWRITE,
HANDLE  file = INVALID_HANDLE_VALUE 
)
inlinevirtual

◆ Capacity() [2/2]

template<class contents >
unsigned long jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::Capacity ( void  ) const
inlinevirtualnoexcept

◆ GetEndPrivateDataBlock()

template<class contents >
unsigned long jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::GetEndPrivateDataBlock ( void  )
inlinestaticprotectednoexcept

Definition at line 463 of file SharedMemory.hpp.

◆ IsCreator()

template<class contents >
bool jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::IsCreator ( void  ) const
inlinenoexcept

Definition at line 352 of file SharedMemory.hpp.

◆ Lock()

template<class contents >
NTUtils::Mutex & jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::Lock ( void  )
inlinenoexcept

Definition at line 366 of file SharedMemory.hpp.

◆ MapDataPtr()

template<class contents >
contents * jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::MapDataPtr ( HANDLE  file,
const DWORD  access,
const DWORD  hi_offset,
const DWORD  low_offset,
const unsigned long  size 
)
inlineprotected

Definition at line 403 of file SharedMemory.hpp.

◆ Name()

template<class contents >
const std::string & jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::Name ( void  ) const
inlinenoexcept

Definition at line 320 of file SharedMemory.hpp.

◆ operator const contents *()

template<class contents >
jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::operator const contents *
inline

◆ operator contents *()

template<class contents >
jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::operator contents *
inline

◆ operator<<()

template<class contents >
std::ostream & jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::operator<< ( std::ostream &  strm) const
inlinevirtual

Definition at line 370 of file SharedMemory.hpp.

◆ operator>>()

template<class contents >
std::istream & jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::operator>> ( std::istream &  strm)
inlinevirtual

Definition at line 379 of file SharedMemory.hpp.

◆ UnmapDataPtr()

template<class contents >
void jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::UnmapDataPtr ( const contents *  raw_data)
inlineprotected

Definition at line 420 of file SharedMemory.hpp.

◆ UsageCount()

template<class contents >
unsigned long jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::UsageCount ( void  ) const
inlinenoexcept

Definition at line 389 of file SharedMemory.hpp.

Member Data Documentation

◆ mutex

template<class contents >
NTUtils::Mutex jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::mutex
protected

Definition at line 89 of file SharedMemory.hpp.

◆ ro_pub_data

template<class contents >
const contents* jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::ro_pub_data
protected

◆ ro_pub_mapping

template<class contents >
HANDLE jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::ro_pub_mapping
protected

Definition at line 91 of file SharedMemory.hpp.

◆ rw_pub_data

template<class contents >
contents* jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::rw_pub_data
protected

◆ rw_pub_mapping

template<class contents >
HANDLE jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::rw_pub_mapping
protected

Definition at line 90 of file SharedMemory.hpp.

◆ rw_raw_data

◆ ss

template<class contents >
const NTUtils::SecuritySettings* const jmmcg::LIBJMMCG_VER_NAMESPACE::NTUtils::RawSharedMemory< contents >::ss
protected

Definition at line 88 of file SharedMemory.hpp.


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