Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
11 : : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : : * contributor license agreements. See the NOTICE file distributed
13 : : * with this work for additional information regarding copyright
14 : : * ownership. The ASF licenses this file to you under the Apache
15 : : * License, Version 2.0 (the "License"); you may not use this file
16 : : * except in compliance with the License. You may obtain a copy of
17 : : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : : */
19 : :
20 : :
21 : : /**************************************************************************
22 : : TODO
23 : : **************************************************************************
24 : :
25 : : Props/Commands:
26 : :
27 : : rootfolder folder stream
28 : : ---------------------------------------------
29 : : ContentType r r r
30 : : IsDocument r r r
31 : : IsFolder r r r
32 : : MediaType (w) (w) w
33 : : Title r w w
34 : : Size - - r
35 : : CreatableContentsInfo r r r
36 : : Compressed - - w
37 : : Encrypted - - w
38 : : HasEncryptedEntries r - -
39 : :
40 : : getCommandInfo x x x
41 : : getPropertySetInfo x x x
42 : : getPropertyValues x x x
43 : : setPropertyValues x x x
44 : : insert - x x
45 : : delete - x x
46 : : open x x x
47 : : transfer x x -
48 : : flush x x -
49 : : createNewContent x x -
50 : :
51 : : *************************************************************************/
52 : : #include <com/sun/star/beans/Property.hpp>
53 : : #include <com/sun/star/beans/PropertyAttribute.hpp>
54 : : #include <com/sun/star/beans/PropertyValue.hpp>
55 : : #include <com/sun/star/ucb/CommandInfo.hpp>
56 : : #include <com/sun/star/ucb/OpenCommandArgument2.hpp>
57 : : #include <com/sun/star/ucb/TransferInfo.hpp>
58 : : #include <com/sun/star/uno/Sequence.hxx>
59 : : #include <sal/macros.h>
60 : : #include "pkgcontent.hxx"
61 : :
62 : : using namespace com::sun::star;
63 : : using namespace package_ucp;
64 : :
65 : : //=========================================================================
66 : : //
67 : : // Content implementation.
68 : : //
69 : : //=========================================================================
70 : :
71 : : #define MAKEPROPSEQUENCE( a ) \
72 : : uno::Sequence< beans::Property >( a, sizeof( a ) / sizeof( a[ 0 ] ) )
73 : :
74 : : #define MAKECMDSEQUENCE( a ) \
75 : : uno::Sequence< ucb::CommandInfo >( a, sizeof( a ) / sizeof( a[ 0 ] ) )
76 : :
77 : : //=========================================================================
78 : : //
79 : : // IMPORTENT: If any property data ( name / type / ... ) are changed, then
80 : : // Content::getPropertyValues(...) must be adapted too!
81 : : //
82 : : //=========================================================================
83 : :
84 : : // virtual
85 : 16 : uno::Sequence< beans::Property > Content::getProperties(
86 : : const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
87 : : {
88 [ + - ]: 16 : osl::Guard< osl::Mutex > aGuard( m_aMutex );
89 : :
90 [ + + ]: 16 : if ( isFolder() )
91 : : {
92 [ + - ][ + + ]: 8 : if ( m_aUri.isRootFolder() )
93 : : {
94 : : //=================================================================
95 : : //
96 : : // Root Folder: Supported properties
97 : : //
98 : : //=================================================================
99 : :
100 : : static const beans::Property aRootFolderPropertyInfoTable[] =
101 : : {
102 : : ///////////////////////////////////////////////////////////////
103 : : // Required properties
104 : : ///////////////////////////////////////////////////////////////
105 : : beans::Property(
106 : : rtl::OUString(
107 : : RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
108 : : -1,
109 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
110 : : beans::PropertyAttribute::BOUND
111 : : | beans::PropertyAttribute::READONLY
112 : : ),
113 : : beans::Property(
114 : : rtl::OUString(
115 : : RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
116 : : -1,
117 [ + - ]: 2 : getCppuBooleanType(),
118 : : beans::PropertyAttribute::BOUND
119 : : | beans::PropertyAttribute::READONLY
120 : : ),
121 : : beans::Property(
122 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
123 : : -1,
124 [ + - ]: 2 : getCppuBooleanType(),
125 : : beans::PropertyAttribute::BOUND
126 : : | beans::PropertyAttribute::READONLY
127 : : ),
128 : : beans::Property(
129 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
130 : : -1,
131 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
132 : : beans::PropertyAttribute::BOUND
133 : : | beans::PropertyAttribute::READONLY
134 : : ),
135 : : ///////////////////////////////////////////////////////////////
136 : : // Optional standard properties
137 : : ///////////////////////////////////////////////////////////////
138 : : beans::Property(
139 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) ),
140 : : -1,
141 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
142 : : beans::PropertyAttribute::BOUND
143 : : ),
144 : : beans::Property(
145 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
146 : : "CreatableContentsInfo" ) ),
147 : : -1,
148 : : getCppuType( static_cast<
149 [ + - ]: 2 : const uno::Sequence< ucb::ContentInfo > * >( 0 ) ),
150 : : beans::PropertyAttribute::BOUND
151 : : | beans::PropertyAttribute::READONLY
152 : : ),
153 : : ///////////////////////////////////////////////////////////////
154 : : // New properties
155 : : ///////////////////////////////////////////////////////////////
156 : : beans::Property(
157 : : rtl::OUString(
158 : : RTL_CONSTASCII_USTRINGPARAM( "HasEncryptedEntries" ) ),
159 : : -1,
160 [ + - ]: 2 : getCppuBooleanType(),
161 : : beans::PropertyAttribute::BOUND
162 : : | beans::PropertyAttribute::READONLY
163 : : )
164 [ + + ][ + - ]: 34 : };
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ # #
# # # # ]
[ + + ]
165 [ + - ]: 4 : return MAKEPROPSEQUENCE( aRootFolderPropertyInfoTable );
166 : : }
167 : : else
168 : : {
169 : : //=================================================================
170 : : //
171 : : // Folder: Supported properties
172 : : //
173 : : //=================================================================
174 : :
175 : : static const beans::Property aFolderPropertyInfoTable[] =
176 : : {
177 : : ///////////////////////////////////////////////////////////////
178 : : // Required properties
179 : : ///////////////////////////////////////////////////////////////
180 : : beans::Property(
181 : : rtl::OUString(
182 : : RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
183 : : -1,
184 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
185 : : beans::PropertyAttribute::BOUND
186 : : | beans::PropertyAttribute::READONLY
187 : : ),
188 : : beans::Property(
189 : : rtl::OUString(
190 : : RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
191 : : -1,
192 [ + - ]: 2 : getCppuBooleanType(),
193 : : beans::PropertyAttribute::BOUND
194 : : | beans::PropertyAttribute::READONLY
195 : : ),
196 : : beans::Property(
197 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
198 : : -1,
199 [ + - ]: 2 : getCppuBooleanType(),
200 : : beans::PropertyAttribute::BOUND
201 : : | beans::PropertyAttribute::READONLY
202 : : ),
203 : : beans::Property(
204 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
205 : : -1,
206 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
207 : : beans::PropertyAttribute::BOUND
208 : : ),
209 : : ///////////////////////////////////////////////////////////////
210 : : // Optional standard properties
211 : : ///////////////////////////////////////////////////////////////
212 : : beans::Property(
213 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) ),
214 : : -1,
215 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
216 : : beans::PropertyAttribute::BOUND
217 : : ),
218 : : beans::Property(
219 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
220 : : "CreatableContentsInfo" ) ),
221 : : -1,
222 : : getCppuType( static_cast<
223 [ + - ]: 2 : const uno::Sequence< ucb::ContentInfo > * >( 0 ) ),
224 : : beans::PropertyAttribute::BOUND
225 : : | beans::PropertyAttribute::READONLY
226 : : )
227 : : ///////////////////////////////////////////////////////////////
228 : : // New properties
229 : : ///////////////////////////////////////////////////////////////
230 [ + + ][ + - ]: 30 : };
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ # # # #
# # ][ + + ]
231 [ + - ]: 4 : return MAKEPROPSEQUENCE( aFolderPropertyInfoTable );
232 : : }
233 : : }
234 : : else
235 : : {
236 : : //=================================================================
237 : : //
238 : : // Stream: Supported properties
239 : : //
240 : : //=================================================================
241 : :
242 : : static const beans::Property aStreamPropertyInfoTable[] =
243 : : {
244 : : ///////////////////////////////////////////////////////////////
245 : : // Required properties
246 : : ///////////////////////////////////////////////////////////////
247 : : beans::Property(
248 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ),
249 : : -1,
250 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
251 : : beans::PropertyAttribute::BOUND
252 : : | beans::PropertyAttribute::READONLY
253 : : ),
254 : : beans::Property(
255 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ),
256 : : -1,
257 [ + - ]: 2 : getCppuBooleanType(),
258 : : beans::PropertyAttribute::BOUND
259 : : | beans::PropertyAttribute::READONLY
260 : : ),
261 : : beans::Property(
262 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ),
263 : : -1,
264 [ + - ]: 2 : getCppuBooleanType(),
265 : : beans::PropertyAttribute::BOUND
266 : : | beans::PropertyAttribute::READONLY
267 : : ),
268 : : beans::Property(
269 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ),
270 : : -1,
271 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
272 : : beans::PropertyAttribute::BOUND
273 : : ),
274 : : ///////////////////////////////////////////////////////////////
275 : : // Optional standard properties
276 : : ///////////////////////////////////////////////////////////////
277 : : beans::Property(
278 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MediaType" ) ),
279 : : -1,
280 [ + - ]: 2 : getCppuType( static_cast< const rtl::OUString * >( 0 ) ),
281 : : beans::PropertyAttribute::BOUND
282 : : ),
283 : : beans::Property(
284 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Size" ) ),
285 : : -1,
286 [ + - ]: 2 : getCppuType( static_cast< const sal_Int64 * >( 0 ) ),
287 : : beans::PropertyAttribute::BOUND
288 : : | beans::PropertyAttribute::READONLY
289 : : ),
290 : : beans::Property(
291 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
292 : : "CreatableContentsInfo" ) ),
293 : : -1,
294 : : getCppuType( static_cast<
295 [ + - ]: 2 : const uno::Sequence< ucb::ContentInfo > * >( 0 ) ),
296 : : beans::PropertyAttribute::BOUND
297 : : | beans::PropertyAttribute::READONLY
298 : : ),
299 : : ///////////////////////////////////////////////////////////////
300 : : // New properties
301 : : ///////////////////////////////////////////////////////////////
302 : : beans::Property(
303 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Compressed" ) ),
304 : : -1,
305 [ + - ]: 2 : getCppuBooleanType(),
306 : : beans::PropertyAttribute::BOUND
307 : : ),
308 : : beans::Property(
309 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Encrypted" ) ),
310 : : -1,
311 [ + - ]: 2 : getCppuBooleanType(),
312 : : beans::PropertyAttribute::BOUND
313 : : )
314 [ + + ][ + - ]: 46 : };
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ # #
# # # # ]
[ + + ]
315 [ + - ]: 8 : return MAKEPROPSEQUENCE( aStreamPropertyInfoTable );
316 [ + - ]: 16 : }
317 : : }
318 : :
319 : : //=========================================================================
320 : : // virtual
321 : 124 : uno::Sequence< ucb::CommandInfo > Content::getCommands(
322 : : const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
323 : : {
324 [ + - ]: 124 : osl::Guard< osl::Mutex > aGuard( m_aMutex );
325 : :
326 [ + - ]: 124 : if ( isFolder() )
327 : : {
328 [ + - ][ + + ]: 124 : if ( m_aUri.isRootFolder() )
329 : : {
330 : : //=================================================================
331 : : //
332 : : // Root Folder: Supported commands
333 : : //
334 : : //=================================================================
335 : :
336 : : static const ucb::CommandInfo aRootFolderCommandInfoTable[] =
337 : : {
338 : : ///////////////////////////////////////////////////////////
339 : : // Required commands
340 : : ///////////////////////////////////////////////////////////
341 : : ucb::CommandInfo(
342 : : rtl::OUString(
343 : : RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
344 : : -1,
345 [ + - ]: 62 : getCppuVoidType()
346 : : ),
347 : : ucb::CommandInfo(
348 : : rtl::OUString(
349 : : RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
350 : : -1,
351 [ + - ]: 62 : getCppuVoidType()
352 : : ),
353 : : ucb::CommandInfo(
354 : : rtl::OUString(
355 : : RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
356 : : -1,
357 : : getCppuType(
358 : : static_cast<
359 [ + - ]: 62 : uno::Sequence< beans::Property > * >( 0 ) )
360 : : ),
361 : : ucb::CommandInfo(
362 : : rtl::OUString(
363 : : RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
364 : : -1,
365 : : getCppuType(
366 : : static_cast<
367 [ + - ]: 62 : uno::Sequence< beans::PropertyValue > * >( 0 ) )
368 : : ),
369 : : ///////////////////////////////////////////////////////////
370 : : // Optional standard commands
371 : : ///////////////////////////////////////////////////////////
372 : : ucb::CommandInfo(
373 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
374 : : -1,
375 : : getCppuType(
376 [ + - ]: 62 : static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
377 : : ),
378 : : ucb::CommandInfo(
379 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
380 : : -1,
381 : : getCppuType(
382 [ + - ]: 62 : static_cast< ucb::TransferInfo * >( 0 ) )
383 : : ),
384 : : ucb::CommandInfo(
385 : : rtl::OUString(
386 : : RTL_CONSTASCII_USTRINGPARAM( "createNewContent" ) ),
387 : : -1,
388 [ + - ]: 62 : getCppuType( static_cast< ucb::ContentInfo * >( 0 ) )
389 : : ),
390 : : ///////////////////////////////////////////////////////////
391 : : // New commands
392 : : ///////////////////////////////////////////////////////////
393 : : ucb::CommandInfo(
394 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "flush" ) ),
395 : : -1,
396 [ + - ]: 62 : getCppuVoidType()
397 : : )
398 [ + - ][ + - ]: 1116 : };
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ # # # #
# # ][ + + ]
399 : :
400 [ + - ]: 62 : return MAKECMDSEQUENCE( aRootFolderCommandInfoTable );
401 : : }
402 : : else
403 : : {
404 : : //=================================================================
405 : : //
406 : : // Folder: Supported commands
407 : : //
408 : : //=================================================================
409 : :
410 : : static const ucb::CommandInfo aFolderCommandInfoTable[] =
411 : : {
412 : : ///////////////////////////////////////////////////////////
413 : : // Required commands
414 : : ///////////////////////////////////////////////////////////
415 : : ucb::CommandInfo(
416 : : rtl::OUString(
417 : : RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
418 : : -1,
419 [ + - ]: 62 : getCppuVoidType()
420 : : ),
421 : : ucb::CommandInfo(
422 : : rtl::OUString(
423 : : RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
424 : : -1,
425 [ + - ]: 62 : getCppuVoidType()
426 : : ),
427 : : ucb::CommandInfo(
428 : : rtl::OUString(
429 : : RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
430 : : -1,
431 : : getCppuType(
432 : : static_cast<
433 [ + - ]: 62 : uno::Sequence< beans::Property > * >( 0 ) )
434 : : ),
435 : : ucb::CommandInfo(
436 : : rtl::OUString(
437 : : RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
438 : : -1,
439 : : getCppuType(
440 : : static_cast<
441 [ + - ]: 62 : uno::Sequence< beans::PropertyValue > * >( 0 ) )
442 : : ),
443 : : ///////////////////////////////////////////////////////////
444 : : // Optional standard commands
445 : : ///////////////////////////////////////////////////////////
446 : : ucb::CommandInfo(
447 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
448 : : -1,
449 [ + - ]: 62 : getCppuBooleanType()
450 : : ),
451 : : ucb::CommandInfo(
452 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
453 : : -1,
454 [ + - ]: 62 : getCppuVoidType()
455 : : ),
456 : : ucb::CommandInfo(
457 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
458 : : -1,
459 : : getCppuType(
460 [ + - ]: 62 : static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
461 : : ),
462 : : ucb::CommandInfo(
463 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ),
464 : : -1,
465 : : getCppuType(
466 [ + - ]: 62 : static_cast< ucb::TransferInfo * >( 0 ) )
467 : : ),
468 : : ucb::CommandInfo(
469 : : rtl::OUString(
470 : : RTL_CONSTASCII_USTRINGPARAM( "createNewContent" ) ),
471 : : -1,
472 [ + - ]: 62 : getCppuType( static_cast< ucb::ContentInfo * >( 0 ) )
473 : : ),
474 : : ///////////////////////////////////////////////////////////
475 : : // New commands
476 : : ///////////////////////////////////////////////////////////
477 : : ucb::CommandInfo(
478 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "flush" ) ),
479 : : -1,
480 [ + - ]: 62 : getCppuVoidType()
481 : : )
482 [ + - ][ + - ]: 1364 : };
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ # # # #
# # ][ + + ]
483 : :
484 [ + - ]: 62 : return MAKECMDSEQUENCE( aFolderCommandInfoTable );
485 : : }
486 : : }
487 : : else
488 : : {
489 : : //=================================================================
490 : : //
491 : : // Stream: Supported commands
492 : : //
493 : : //=================================================================
494 : :
495 : : static const ucb::CommandInfo aStreamCommandInfoTable[] =
496 : : {
497 : : ///////////////////////////////////////////////////////////////
498 : : // Required commands
499 : : ///////////////////////////////////////////////////////////////
500 : : ucb::CommandInfo(
501 : : rtl::OUString(
502 : : RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ),
503 : : -1,
504 [ # # ]: 0 : getCppuVoidType()
505 : : ),
506 : : ucb::CommandInfo(
507 : : rtl::OUString(
508 : : RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ),
509 : : -1,
510 [ # # ]: 0 : getCppuVoidType()
511 : : ),
512 : : ucb::CommandInfo(
513 : : rtl::OUString(
514 : : RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ),
515 : : -1,
516 : : getCppuType(
517 [ # # ]: 0 : static_cast< uno::Sequence< beans::Property > * >( 0 ) )
518 : : ),
519 : : ucb::CommandInfo(
520 : : rtl::OUString(
521 : : RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ),
522 : : -1,
523 : : getCppuType(
524 : : static_cast<
525 [ # # ]: 0 : uno::Sequence< beans::PropertyValue > * >( 0 ) )
526 : : ),
527 : : ///////////////////////////////////////////////////////////////
528 : : // Optional standard commands
529 : : ///////////////////////////////////////////////////////////////
530 : : ucb::CommandInfo(
531 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ),
532 : : -1,
533 [ # # ]: 0 : getCppuBooleanType()
534 : : ),
535 : : ucb::CommandInfo(
536 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ),
537 : : -1,
538 [ # # ]: 0 : getCppuVoidType()
539 : : ),
540 : : ucb::CommandInfo(
541 : : rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ),
542 : : -1,
543 : : getCppuType(
544 [ # # ]: 0 : static_cast< ucb::OpenCommandArgument2 * >( 0 ) )
545 : : )
546 : : ///////////////////////////////////////////////////////////////
547 : : // New commands
548 : : ///////////////////////////////////////////////////////////////
549 [ # # ][ # # ]: 0 : };
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # #
# # # # ]
[ # # ]
550 : :
551 [ # # ]: 0 : return MAKECMDSEQUENCE( aStreamCommandInfoTable );
552 [ + - ]: 124 : }
553 : : }
554 : :
555 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|