Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libjni-mrsid / include / base / lti_delegates.h @ 12250

History | View | Annotate | Download (3.32 KB)

1 662 igbrotru
/* $Id$ */
2
/* //////////////////////////////////////////////////////////////////////////
3
//                                                                         //
4
// This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue,   //
5
// Suite 200, Seattle, WA 98104.  Unauthorized use or distribution         //
6
// prohibited.  Access to and use of this code is permitted only under     //
7
// license from LizardTech, Inc.  Portions of the code are protected by    //
8
// US and foreign patents and other filings. All Rights Reserved.          //
9
//                                                                         //
10
////////////////////////////////////////////////////////////////////////// */
11
/* PUBLIC */
12
13
#ifndef LTI_DELEGATES_H
14
#define LTI_DELEGATES_H
15
16
// lt_lib_base
17
#include "lt_base.h"
18
19
20
LT_BEGIN_NAMESPACE(LizardTech)
21
22
#if defined(LT_COMPILER_MS)
23
   #pragma warning(push,4)
24
#endif
25
26
27
/**
28
 * interrupt delegate (callback) base class
29
 *
30
 * This abstract class is used for implementing a mechanism to determine if
31
 * a potentially long-running operation is to be interrupted, such as
32
 * LTIImageStage::read() or LTIImageWriter::write().  During these sorts of
33
 * operations, an object which has an interrupt delegate may periodically
34
 * call the delegate's getInterruptStatus() method to determine if the
35
 * operation should be aborted.  If this function returns a value other than
36
 * LT_STS_Success, then the object will abort the operation  and return that
37
 * status value.
38
 *
39
 * Interrupt delegates are typically used in environments such as GUI encoders.
40
 *
41
 * A "delegate" is simply an object-oriented version of a callback function.
42
 */
43
class LTIInterruptDelegate
44
{
45
public:
46
   /**
47
    * check for interrupt
48
    *
49
    * This function should be implemented to indicate whether some user-defined
50
    * event indicates that the operation should be terminated.  If an interrupt
51
    * is requested, a value other than LT_STS_Success should be returned.
52
    *
53
    * @return LT_STS_Success if no interrupt requested; any other (nonzero)
54
    *         value if an interrupt is requested
55
    */
56
   virtual LT_STATUS getInterruptStatus() const = 0;
57
};
58
59
60
/**
61
 * progress delegate (callback) base class
62
 *
63
 * This abstract class is used for implementing a mechanism to report the
64
 * progress (percent complete) of a potentially long-running operation.
65
 * During these sorts of operations, an object which has a progress delegate
66
 * may periodically call the delegate's setProgressStatus() method to report
67
 * the percent of the operation completed.
68
 *
69
 * Progress delegates are typically used in GUI environments as a means of
70
 * displaying percent-complete or time-remaining.
71
 *
72
 * A "delegate" is simply an object-oriented version of a callback function.
73
 */
74
class LTIProgressDelegate
75
{
76
public:
77
   /**
78
    * set percent completed
79
    *
80
    * This function should be implemented to report to the client application
81
    * the progress of a long-running operation.
82
    *
83
    * @param percentComplete the percent complete; this must be a value in the
84
    *                        range 0.0 to 1.0 inclusive
85
    * @return LT_STS_Success if function succeeded, nonzero if some error occurred
86
    */
87
   virtual LT_STATUS setProgressStatus(float percentComplete) = 0;
88
};
89
90
91
LT_END_NAMESPACE(LizardTech)
92
93
#if defined(LT_COMPILER_MS)
94
        #pragma warning(pop)
95
#endif
96
97
#endif // LTI_DELEGATES_H