threadstatesaver.h 761 B

12345678910111213141516171819202122232425262728293031
  1. // Copyright (C) 2016 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. #ifndef THREADSTATESAVER_H
  4. #define THREADSTATESAVER_H
  5. #include "sbkpython.h"
  6. #include <shibokenmacros.h>
  7. namespace Shiboken
  8. {
  9. class LIBSHIBOKEN_API ThreadStateSaver
  10. {
  11. public:
  12. ThreadStateSaver(const ThreadStateSaver &) = delete;
  13. ThreadStateSaver(ThreadStateSaver &&) = delete;
  14. ThreadStateSaver &operator=(const ThreadStateSaver &) = delete;
  15. ThreadStateSaver &operator=(ThreadStateSaver &&) = delete;
  16. ThreadStateSaver();
  17. ~ThreadStateSaver();
  18. void save();
  19. void restore();
  20. private:
  21. PyThreadState *m_threadState = nullptr;
  22. };
  23. } // namespace Shiboken
  24. #endif // THREADSTATESAVER_H