Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
iabort.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2008-2025 Global Graphics Software Ltd. All rights reserved.
3 */
4
9
15
16#ifndef IABORT_H
17#define IABORT_H
18
19#include <edl/smartptr.h>
20#include <edl/ircobject.h>
21
23
24class IAbort;
26class IProgressTick;
32
38class IAbort : public IRCObject
39{
40 public:
41 virtual ~IAbort() {}
42
47 static EDL_API IAbortPtr create();
48
52 virtual void resetSignal () = 0;
53
57 virtual void signalAbort() = 0;
58
63 virtual bool abortSignalled() = 0;
64};
65
70#define CHECKABORT(abort) THROW_IF((abort) && (abort)->abortSignalled(), EDL_ERR_ABORTED);
71
72
84{
85 public:
86
90 typedef void (*FloatProgressCallbackFunc)(void *priv, float progress);
91
96 typedef void (*IntProgressCallbackFunc)(void *priv, uint32 currentCount, uint32 maxCount);
97
98 virtual ~IProgressTick() {}
99
107 static EDL_API IProgressTickPtr create (IntProgressCallbackFunc cbFunc, void *cbPriv);
108
116 static EDL_API IProgressTickPtr create (FloatProgressCallbackFunc cbFunc, void *cbPriv);
117
124 virtual void setCallback (IntProgressCallbackFunc cbFunc, void *cbPriv) = 0;
125
132 virtual void setCallback (FloatProgressCallbackFunc cbFunc, void *cbPriv) = 0;
133
137 virtual void tickReset () = 0;
138
142 virtual void tick () = 0;
143
147 virtual void tickMax () = 0;
148
154 virtual void setTickMax (const uint32 tickMax) = 0;
155
156};
157#define PROGRESSTICK(progressTick) { if (progressTick) (progressTick)->tick(); }
158#define PROGRESSTICKMAX(progressTick) { if (progressTick) (progressTick)->tickMax(); }
159
168{
169 public:
170 typedef enum
171 {
173 eEvtPageWriteStart, // Event posted at the start of writing a page
174 eEvtPageWriteEnd, // Event posted after a page is written.
177 } Event;
178
180
184 typedef void (*ProgressEventHandlerCallbackFunc) (void *priv, Event evt);
185
190 virtual void handleEvent (Event evt) = 0;
191
199 static EDL_API IProgressEventHandlerPtr create (ProgressEventHandlerCallbackFunc cbFunc, void *cbPriv);
200};
201
209{
210 public:
211 virtual ~IProgressMonitor () {};
212
222 static EDL_API IProgressMonitorPtr create (const IProgressTickPtr &progressTick, const IAbortPtr &abort);
223
231 static EDL_API IProgressMonitorPtr create (const IProgressTickPtr &progressTick);
232
240 static EDL_API IProgressMonitorPtr create (const IAbortPtr &abort);
241
247 virtual IProgressTickPtr getProgressTick () const = 0;
248
254 virtual IAbortPtr getAbort () const = 0;
255
261 virtual void setProgressEventHandler (const IProgressEventHandlerPtr &progressEventHandler) = 0;
262
269};
270
272
273#endif /* IABORT_H */
274
275
A simple class to signal an abort in processing.
Definition iabort.h:39
static EDL_API IAbortPtr create()
Create an abort signal.
virtual bool abortSignalled()=0
Determine if the abort has been signalled.
virtual void signalAbort()=0
Signal that the output operation should be aborted.
virtual ~IAbort()
Definition iabort.h:41
virtual void resetSignal()=0
Reset the abort object to an unsignalled state.
An abstract class allowing a callback respond to events during the processing of a document....
Definition iabort.h:168
void(* ProgressEventHandlerCallbackFunc)(void *priv, Event evt)
A callback function type for receiving events.
Definition iabort.h:184
static EDL_API IProgressEventHandlerPtr create(ProgressEventHandlerCallbackFunc cbFunc, void *cbPriv)
Create the IProgressEventHandler object with a callback function.
virtual void handleEvent(Event evt)=0
Handles an event.
virtual ~IProgressEventHandler()
Definition iabort.h:179
Event
Definition iabort.h:171
@ eEvtNone
Definition iabort.h:172
@ eEvtPageWriteEnd
Definition iabort.h:174
@ eEvtNodeWriteEnd
Definition iabort.h:176
@ eEvtNodeWriteStart
Definition iabort.h:175
@ eEvtPageWriteStart
Definition iabort.h:173
An abstract class encapsulating both an IProgressTick and an IAbort so that the caller can monitor th...
Definition iabort.h:209
static EDL_API IProgressMonitorPtr create(const IProgressTickPtr &progressTick, const IAbortPtr &abort)
Create smart pointer to an IProgressMonitor object.
virtual ~IProgressMonitor()
Definition iabort.h:211
static EDL_API IProgressMonitorPtr create(const IAbortPtr &abort)
Create smart pointer to an IProgressMonitor object.
static EDL_API IProgressMonitorPtr create(const IProgressTickPtr &progressTick)
Create smart pointer to an IProgressMonitor object.
virtual void setProgressEventHandler(const IProgressEventHandlerPtr &progressEventHandler)=0
Set the IProgressEventHandler object for the progress monitor.
virtual void postEvent(IProgressEventHandler::Event evt)=0
Posts an event via the attached progress event handler for this monitor object.
virtual IAbortPtr getAbort() const =0
Return the smart pointer to an IAbort object.
virtual IProgressTickPtr getProgressTick() const =0
Return the IProgressTick object or NULL if there was no such object.
An abstract class allowing a callback to monitor the progress of a task. The callback can either pass...
Definition iabort.h:84
void(* FloatProgressCallbackFunc)(void *priv, float progress)
A callback type for receiving progress information from 0.0 (starting) through 1.0 (complete)
Definition iabort.h:90
virtual ~IProgressTick()
Definition iabort.h:98
static EDL_API IProgressTickPtr create(FloatProgressCallbackFunc cbFunc, void *cbPriv)
Create the IProgressTick object with an floating point callback function.
virtual void setCallback(FloatProgressCallbackFunc cbFunc, void *cbPriv)=0
Set the integer type callback function.
void(* IntProgressCallbackFunc)(void *priv, uint32 currentCount, uint32 maxCount)
A callback type for receiving progress information as an integer. The value of currentCount goes from...
Definition iabort.h:96
virtual void setTickMax(const uint32 tickMax)=0
Set the maximum counter value.
virtual void tickReset()=0
Reset the internal counter to 0.
static EDL_API IProgressTickPtr create(IntProgressCallbackFunc cbFunc, void *cbPriv)
Create the IProgressTick object with an integer callback function.
virtual void tickMax()=0
Set the tick counter to the maximum value and invoke the callback function.
virtual void setCallback(IntProgressCallbackFunc cbFunc, void *cbPriv)=0
Set the integer type callback function.
virtual void tick()=0
Increment the tick counter and optionally invoke the callback function.
Base class Interface for all Reference Counted objects.
Definition ircobject.h:35
#define _BEGIN_EDL_NAMESPACE
Definition edlnamespaces.h:75
#define _END_EDL_NAMESPACE
Definition edlnamespaces.h:76
unsigned int uint32
Definition edltypes.h:34
#define EDL_API
Definition edltypes.h:86
Interface for Reference Counted Object.
EDL smart pointers which, in conjunction with the IRCOject class, provide reference-counted and autom...
#define DECL_SMART_PTR(cls)
Definition smartptr.h:211