1// qsharedmemory.sip generated by MetaSIP
2//
3// This file is part of the QtCore Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QSharedMemory : QObject
24{
25%TypeHeaderCode
26#include <qsharedmemory.h>
27%End
28
29public:
30    enum AccessMode
31    {
32        ReadOnly,
33        ReadWrite,
34    };
35
36    enum SharedMemoryError
37    {
38        NoError,
39        PermissionDenied,
40        InvalidSize,
41        KeyError,
42        AlreadyExists,
43        NotFound,
44        LockError,
45        OutOfResources,
46        UnknownError,
47    };
48
49    QSharedMemory(QObject *parent /TransferThis/ = 0);
50    QSharedMemory(const QString &key, QObject *parent /TransferThis/ = 0);
51    virtual ~QSharedMemory();
52    void setKey(const QString &key);
53    QString key() const;
54    bool create(int size, QSharedMemory::AccessMode mode = QSharedMemory::ReadWrite);
55    int size() const;
56    bool attach(QSharedMemory::AccessMode mode = QSharedMemory::ReadWrite);
57    bool isAttached() const;
58    bool detach();
59    SIP_PYOBJECT data() /TypeHint="PyQt5.sip.voidptr"/;
60%MethodCode
61        sipRes = sipConvertFromVoidPtrAndSize(sipCpp->data(), sipCpp->size());
62%End
63
64    SIP_PYOBJECT constData() const /TypeHint="PyQt5.sip.voidptr"/;
65%MethodCode
66        sipRes = sipConvertFromConstVoidPtrAndSize(sipCpp->constData(), sipCpp->size());
67%End
68
69    bool lock();
70    bool unlock();
71    QSharedMemory::SharedMemoryError error() const;
72    QString errorString() const;
73    void setNativeKey(const QString &key);
74    QString nativeKey() const;
75};
76