/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef EX_H_SCREENUPDATEREACTOR #define EX_H_SCREENUPDATEREACTOR #include "TD_PackPush.h" #include "RxObject.h" #include "StaticRxObject.h" class OdGsDevice; class OdGiPointCloudScheduler; /** \details */ class OdScreenUpdateReactor : public OdRxObject { public: /** \details Default constructor for the OdScreenUpdateReactor class. */ OdScreenUpdateReactor() {} /** \details Performs a screen update request for the specified device. \param pDevice [in] Pointer to a device. */ virtual void screenUpdateRequest(OdGsDevice *pDevice) = 0; /** \details Returns an update screen scheduler. \returns Pointer to the OdGiPointCloudScheduler instance. */ virtual OdGiPointCloudScheduler *screenUpdateScheduler() { return NULL; } }; /** \details This template class is a specialization of the OdSmartPtr class for OdHardwareSectionsInterface object pointers. */ typedef OdSmartPtr OdScreenUpdateReactorPtr; /** \details */ class OdScreenUpdateReactorMgr : public OdStaticRxObject { public: /** \details Default constructor for the OdScreenUpdateReactorMgr class. */ OdScreenUpdateReactorMgr() {} /** \details Attaches a screen update reactor to this manager. \param pReactor [in] Pointer to a reactor to attach. */ virtual void attachReactor(OdScreenUpdateReactor *pReactor) = 0; /** \details Attaches a screen update reactor to this manager. \param pReactor [in] Pointer to a reactor to detach. */ virtual void detachReactor(OdScreenUpdateReactor *pReactor) = 0; /** \details Checks whether this manager has the specified reactor attached. \param pReactor [in] Pointer to a reactor to check. \returns True if this manager has the specified reactor, false otherwise. */ virtual bool hasReactor(const OdScreenUpdateReactor *pReactor) = 0; /** \details Returns a number representing quantity of reactors attached to this manager. \returns Number of reactors. */ virtual OdUInt32 numReactors() = 0; }; /** \details This template class is a specialization of the OdSmartPtr class for OdHardwareSectionsInterface object pointers. */ typedef OdSmartPtr OdScreenUpdateReactorMgrPtr; #include "TD_PackPop.h" #endif // EX_H_SCREENUPDATEREACTOR