]> Creatis software - gdcm.git/blob - src/gdcmCallbackCommand.h
Avoid warnings
[gdcm.git] / src / gdcmCallbackCommand.h
1 /*=========================================================================
2                                                                                 
3   Program:   gdcm
4   Module:    $RCSfile: gdcmCallbackCommand.h,v $
5   Language:  C++
6   Date:      $Date: 2005/11/28 15:20:35 $
7   Version:   $Revision: 1.1 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*/
18
19 #ifndef GDCMCALLBACKCOMMAND_H
20 #define GDCMCALLBACKCOMMAND_H
21
22 #include "gdcmDebug.h"
23 #include "gdcmCommand.h"
24
25 namespace gdcm 
26 {
27 //-----------------------------------------------------------------------------
28 /**
29  * \brief CallbackCommand base class to react on a gdcm event
30  *
31  * \remarks The execution parameter depends on the
32  */
33 class GDCM_EXPORT CallbackCommand : public Command
34 {
35    gdcmTypeMacro(CallbackCommand);
36    gdcmNewMacro(CallbackCommand);
37
38 public:
39
40    typedef void CbkMethod(CallbackCommand *);
41
42 /*   // Note: the CallbackCommand:: namespace prefix is needed by Swig in the 
43    //       following method declarations. Refer to gdcmPython/gdcm.i
44    //       for the reasons of this unnecessary notation at C++ level.
45    void SetCallback(CallbackCommand::CbkMethod *callback,void *arg = NULL );
46    void SetCallbackArgDelete(CallbackCommand::CbkMethod *callback);
47    // Note: replace CallbackCommand::Method *method to void(*method)(void *) to
48    //       avoid wrapping problems with the typemap conversions
49    void SetCallback(void(*callback)(void *), // CallbackCommand::Method *method
50                     void *arg,
51                     void(*argDelete)(void *));
52 */
53    void SetCallback(CallbackCommand::CbkMethod *callback);
54
55    virtual void Execute();
56
57 protected:
58    CallbackCommand();
59    virtual ~CallbackCommand();
60
61 private:
62    /// pointer to the initialisation method for any progress bar   
63    CbkMethod *Callback;
64    /// pointer to the ??? method for any progress bar   
65    CbkMethod *CallbackArgDelete;
66    /// pointer to the ??? data for any progress bar   
67    void *CallbackArg;
68 };
69 } // end namespace gdcm
70
71 //-----------------------------------------------------------------------------
72 #endif