OGRE-Next: Ogre::WorkQueue::RequestHandler Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::WorkQueue::RequestHandler Class Referenceabstract

Interface definition for a handler of requests. More...

`#include <OgreWorkQueue.h>`

Inheritance diagram for Ogre::WorkQueue::RequestHandler:
[legend]

## Public Member Functions
| RequestHandler ()
virtual | ~RequestHandler ()
virtual bool | canHandleRequest (const Request *req, const WorkQueue *srcQ)
| Return whether this handler can process a given request.
virtual Response * | handleRequest (const Request *req, const WorkQueue *srcQ)=0
| The handler method every subclass must implement.

## Detailed Description

Interface definition for a handler of requests.

Remarks
  User classes are expected to implement this interface in order to process requests on the queue. It's important to realise that the calls to this class may be in a separate thread to the main render context, and as such it may not be possible to make rendersystem or other GPU-dependent calls in this handler. You can only do so if the queue was created with 'workersCanAccessRenderSystem' set to true, and OGRE_THREAD_SUPPORT=1, but this puts extra strain on the thread safety of the render system and is not recommended. It is best to perform CPU-side work in these handlers and let the response handler transfer results to the GPU in the main render thread.

## Constructor & Destructor Documentation

## ◆ RequestHandler()

Ogre::WorkQueue::RequestHandler::RequestHandler | ( |  | ) |
| inline

## ◆ ~RequestHandler()

virtual Ogre::WorkQueue::RequestHandler::~RequestHandler | ( |  | ) |
| inlinevirtual

## Member Function Documentation

## ◆ canHandleRequest()

virtual bool Ogre::WorkQueue::RequestHandler::canHandleRequest | ( | const Request * | req,
|  | const WorkQueue * | srcQ )
| inlinevirtual

Return whether this handler can process a given request.

Remarks
  Defaults to true, but if you wish to add several handlers each of which deal with different types of request, you can override this method.

Reimplemented in Ogre::Page, and Ogre::ResourceBackgroundQueue.

References Ogre::WorkQueue::WorkQueue(), and Ogre::WorkQueue::Request::getAborted().

## ◆ handleRequest()

virtual Response * Ogre::WorkQueue::RequestHandler::handleRequest | ( | const Request * | req,
|  | const WorkQueue * | srcQ )
| pure virtual

The handler method every subclass must implement.

If a failure is encountered, return a Response with a failure result rather than raise an exception.

Parameters

  req | The Request structure, which is effectively owned by the handler during this call. It must be attached to the returned Response regardless of success or failure.
  srcQ | The work queue that this request originated from

Returns
  Pointer to a Response object - the caller is responsible for deleting the object.

Implemented in Ogre::Page, Ogre::ResourceBackgroundQueue, and Ogre::Volume::ChunkHandler.

References Ogre::WorkQueue::WorkQueue().

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

- OgreWorkQueue.h