Adobe 65007312 Programming Guide - Page 51

Stage 5: Error reporting and clean up, Final processing of rendered photos

Page 51 highlights

CHAPTER 3: Creating Export and Publish Services Final processing of rendered photos 51 3. When the processing operation is finished, the filter must report its status on the rendition by calling renditionToSatisfy:renditionIsDone( success, message ). This is done automatically by the filterContext:renditions() iterator if you have not already done so explicitly. The iterator verifies that a file exists at the expected path and signals success or failure accordingly. If the file is missing, it uses a generic "an unknown error occurred" message. If you want to provide a more meaningful message, make an explicit call to renditionIsDone( false, message ). Typically, you need only call renditionIsDone() on failure. 4. The call to renditionToSatisfy:renditionIsDone() allows the downstream consumer's waitForRender() call to complete. 5. Meanwhile, the task for this filter continues on and waits for the next rendition. 6. Once all of the filters have finished processing a photo, the waitForRender() call in the service's processRenderedPhotos loop completes. The service does whatever processing it needs to (in this example, uploading with FTP), and then waits for the next photo to be available. 7. If the "Add to this Catalog" checkbox was selected, Lightroom adds the new photo to the catalog at this point. Stage 5: Error reporting and clean up Once the service's processRenderedPhotos loop completes, Lightroom takes the following clean-up actions: X If the photo files were rendered into a temporary folder, Lightroom deletes the folder and its contents. X If the export was triggered through the Export dialog: Z Plays the export completion sound, if any. Z If any photos failed to export, shows an error dialog that summarizes all of the errors encountered while exporting. Z Creates a temporary "Previous Export" collection with the source photos that were exported. These behaviors are not available when an export is initiated by calling LrExportSession directly. Final processing of rendered photos The processRenderedPhotos() service entry allows you to control what happens to each exported photo after it is rendered by Lightroom and after all post-process actions have been applied to it. This is the function that is responsible for transferring the image file to its destination, as defined by your plug-in. The function that you define is launched within a cooperative task that Lightroom provides. You do not need to start your own task to run this function; and in general, you should not need to start another task from within your processing function. (See "Defining function contexts and tasks" on page 20.) processRenderedPhotos = function( functionContext, exportContext ) ... end, The parameters functionContext and exportContext are instances of LrFunctionContext and LrExportContext respectively, which Lightroom creates and passes to your function. X Use the function-context object to define cleanup handlers for this call.

  • 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
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204

C
HAPTER
3: Creating Export and Publish Services
Final processing of rendered photos
51
3.
When the processing operation is finished, the filter must report its status on the rendition by calling
renditionToSatisfy:renditionIsDone(
success
,
message
)
.
This is done automatically by the
filterContext:renditions()
iterator if you have not already
done so explicitly. The iterator verifies that a file exists at the expected path and signals success or
failure accordingly. If the file is missing, it uses a generic "an unknown error occurred" message. If you
want to provide a more meaningful message, make an explicit call to
renditionIsDone( false,
message
)
. Typically, you need only call
renditionIsDone()
on failure.
4.
The call to
renditionToSatisfy:renditionIsDone()
allows the downstream consumer's
waitForRender()
call to complete.
5.
Meanwhile, the task for this filter continues on and waits for the next rendition.
6.
Once all of the filters have finished processing a photo, the
waitForRender()
call in the service’s
processRenderedPhotos
loop completes. The service does whatever processing it needs to (in this
example, uploading with FTP), and then waits for the next photo to be available.
7.
If the "Add to this Catalog" checkbox was selected, Lightroom adds the new photo to the catalog at
this point.
Stage 5: Error reporting and clean up
Once the service’s
processRenderedPhotos
loop completes, Lightroom takes the following clean-up
actions:
X
If the photo files were rendered into a temporary folder, Lightroom deletes the folder and its contents.
X
If the export was triggered through the Export dialog:
Z
Plays the export completion sound, if any.
Z
If any photos failed to export, shows an error dialog that summarizes all of the errors encountered
while exporting.
Z
Creates a temporary "Previous Export" collection with the source photos that were exported.
These behaviors are not available when an export is initiated by calling
LrExportSession
directly.
Final processing of rendered photos
The
processRenderedPhotos()
service entry allows you to control what happens to each exported
photo after it is rendered by Lightroom and after all post-process actions have been applied to it. This is
the function that is responsible for transferring the image file to its destination, as defined by your plug-in.
The function that you define is launched within a cooperative task that Lightroom provides. You do not
need to start your own task to run this function; and in general, you should not need to start another task
from within your processing function. (See
“Defining function contexts and tasks” on page 20
.)
processRenderedPhotos = function( functionContext, exportContext )
...
end,
The parameters
functionContext
and
exportContext
are instances of
LrFunctionContext
and
LrExportContext
respectively, which Lightroom creates and passes to your function.
X
Use the function-context object to define cleanup handlers for this call.