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

#include <SharedMemory.hpp>

Inheritance diagram for jmmcg::NTUtils::RawSharedMemory< contents >:
[legend]
Collaboration diagram for jmmcg::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 * ()
 
jmmcg::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 jmmcg::NTUtils::SecuritySettings *const ss
 
jmmcg::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::NTUtils::RawSharedMemory< contents >

Definition at line 85 of file SharedMemory.hpp.

Member Typedef Documentation

◆ contents_type

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

Definition at line 87 of file SharedMemory.hpp.

Constructor & Destructor Documentation

◆ RawSharedMemory() [1/2]

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

Definition at line 339 of file SharedMemory.hpp.

◆ ~RawSharedMemory()

template<class contents >
jmmcg::NTUtils::RawSharedMemory< contents >::~RawSharedMemory ( void  )
inlinevirtual

Definition at line 349 of file SharedMemory.hpp.

◆ RawSharedMemory() [2/2]

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

Definition at line 428 of file SharedMemory.hpp.

Member Function Documentation

◆ Capacity() [1/2]

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

Definition at line 363 of file SharedMemory.hpp.

◆ Capacity() [2/2]

◆ GetEndPrivateDataBlock()

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

Definition at line 498 of file SharedMemory.hpp.

◆ IsCreator()

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

Definition at line 387 of file SharedMemory.hpp.

◆ Lock()

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

Definition at line 401 of file SharedMemory.hpp.

◆ MapDataPtr()

template<class contents >
contents * jmmcg::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 438 of file SharedMemory.hpp.

◆ Name()

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

Definition at line 355 of file SharedMemory.hpp.

◆ operator const contents *()

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

Definition at line 392 of file SharedMemory.hpp.

◆ operator contents *()

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

Definition at line 397 of file SharedMemory.hpp.

◆ operator<<()

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

Definition at line 405 of file SharedMemory.hpp.

◆ operator>>()

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

Definition at line 414 of file SharedMemory.hpp.

◆ UnmapDataPtr()

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

Definition at line 455 of file SharedMemory.hpp.

◆ UsageCount()

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

Definition at line 424 of file SharedMemory.hpp.

Member Data Documentation

◆ mutex

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

Definition at line 124 of file SharedMemory.hpp.

◆ ro_pub_data

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

Definition at line 131 of file SharedMemory.hpp.

◆ ro_pub_mapping

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

Definition at line 126 of file SharedMemory.hpp.

◆ rw_pub_data

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

Definition at line 130 of file SharedMemory.hpp.

◆ rw_pub_mapping

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

Definition at line 125 of file SharedMemory.hpp.

◆ rw_raw_data

template<class contents>
contents* jmmcg::NTUtils::RawSharedMemory< contents >::rw_raw_data
protected

Definition at line 127 of file SharedMemory.hpp.

◆ ss

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

Definition at line 123 of file SharedMemory.hpp.


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