1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
/*=========================================================================
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.kitware.com/VolViewCopyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef __vtkKWRemoteIOTask_h
#define __vtkKWRemoteIOTask_h
#include "vtkObject.h"
#include "vtkSmartPointer.h"
#include "vtkKWRemoteIOManager.h"
class VTK_EXPORT vtkKWRemoteIOTask : public vtkObject
{
public:
static vtkKWRemoteIOTask *New();
vtkTypeRevisionMacro(vtkKWRemoteIOTask,vtkObject);
void PrintSelf(ostream& os, vtkIndent indent);
//BTX
typedef void (vtkKWRemoteIOManager::*TaskFunctionPointer)(void *clientdata);
//ETX
// Description:
// Set the function and object to call for the task.
void SetTaskFunction(vtkKWRemoteIOManager*,
TaskFunctionPointer,
void *clientdata);
// Description:
// Execute the task.
virtual void Execute();
// Description:
// The type of task - this can be used, for example, to decide
// how many concurrent threads should be allowed
//BTX
enum
{
Undefined = 0,
Processing,
Networking
};
//ETX
vtkSetClampMacro (Type, int, vtkKWRemoteIOTask::Undefined, vtkKWRemoteIOTask::Networking);
vtkGetMacro (Type, int);
void SetTypeToProcessing() {this->SetType(vtkKWRemoteIOTask::Processing);};
void SetTypeToNetworking() {this->SetType(vtkKWRemoteIOTask::Networking);};
const char* GetTypeAsString( ) {
switch (this->Type)
{
case vtkKWRemoteIOTask::Undefined: return "Undefined";
case vtkKWRemoteIOTask::Processing: return "Processing";
case vtkKWRemoteIOTask::Networking: return "Networking";
}
return "Unknown";
}
protected:
vtkKWRemoteIOTask();
virtual ~vtkKWRemoteIOTask();
private:
//BTX
vtkSmartPointer< vtkKWRemoteIOManager > TaskObject;
TaskFunctionPointer TaskFunction;
void *TaskClientData;
//ETX
int Type;
vtkKWRemoteIOTask(const vtkKWRemoteIOTask&);
void operator=(const vtkKWRemoteIOTask&);
};
#endif
|