class Poco::SharedMemoryImpl

Overview

A dummy implementation of shared memory, for systems that do not have shared memory support. Moreā€¦

#include <SharedMemory_DUMMY.h>

class SharedMemoryImpl: public Poco::RefCountedObject
{
public:
    // construction

    SharedMemoryImpl(
        const std::string& id,
        std::size_t size,
        SharedMemory::AccessMode mode,
        const void* addr,
        bool server
        );

    SharedMemoryImpl(
        const Poco::File& aFile,
        SharedMemory::AccessMode mode,
        const void* addr
        );

    SharedMemoryImpl(
        const std::string& name,
        std::size_t size,
        SharedMemory::AccessMode mode,
        const void* addrHint,
        bool server
        );

    SharedMemoryImpl(
        const Poco::File& file,
        SharedMemory::AccessMode mode,
        const void* addrHint
        );

    // methods

    char*
    begin() const;

    char*
    end() const;

    char*
    begin() const;

    char*
    end() const;

protected:
    // methods

    void
    map(const void* addrHint);

    void
    unmap();

    void
    close();

    void
    map();
};

Inherited Members

public:
    // methods

    void
    duplicate() const;

    void
    release() const;

    int
    referenceCount() const;

Detailed Documentation

A dummy implementation of shared memory, for systems that do not have shared memory support.

Shared memory implementation for Windows platforms.

Shared memory implementation for POSIX platforms.

Construction

SharedMemoryImpl(
    const std::string& id,
    std::size_t size,
    SharedMemory::AccessMode mode,
    const void* addr,
    bool server
    )

Creates or connects to a shared memory object with the given name.

For maximum portability, name should be a valid Unix filename and not contain any slashes or backslashes.

An address hint can be passed to the system, specifying the desired start address of the shared memory area. Whether the hint is actually honored is, however, up to the system. Windows platform will generally ignore the hint.

SharedMemoryImpl(
    const Poco::File& aFile,
    SharedMemory::AccessMode mode,
    const void* addr
    )

Maps the entire contents of file into a shared memory segment.

An address hint can be passed to the system, specifying the desired start address of the shared memory area. Whether the hint is actually honored is, however, up to the system. Windows platform will generally ignore the hint.

SharedMemoryImpl(
    const std::string& name,
    std::size_t size,
    SharedMemory::AccessMode mode,
    const void* addrHint,
    bool server
    )

Creates or connects to a shared memory object with the given name.

For maximum portability, name should be a valid Unix filename and not contain any slashes or backslashes.

An address hint can be passed to the system, specifying the desired start address of the shared memory area. Whether the hint is actually honored is, however, up to the system. Windows platform will generally ignore the hint.

If server is set to false, the shared memory region will be unlinked by calling shm_unlink when the SharedMemory object is destroyed.

SharedMemoryImpl(
    const Poco::File& file,
    SharedMemory::AccessMode mode,
    const void* addrHint
    )

Maps the entire contents of file into a shared memory segment.

An address hint can be passed to the system, specifying the desired start address of the shared memory area. Whether the hint is actually honored is, however, up to the system. Windows platform will generally ignore the hint.

Methods

char*
begin() const

Returns the start address of the shared memory segment.

char*
end() const

Returns the one-past-end end address of the shared memory segment.

char*
begin() const

Returns the start address of the shared memory segment.

char*
end() const

Returns the one-past-end end address of the shared memory segment.

void
map(const void* addrHint)

Maps the shared memory object.

void
unmap()

Unmaps the shared memory object.

void
close()

Releases the handle for the shared memory segment.

void
map()

Maps the shared memory object.