SynthesisIterBot.h

Go to the documentation of this file.
00001 //# SynthesisDeconvolver.h: Imager functionality sits here; 
00002 //# Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003
00003 //# Associated Universities, Inc. Washington DC, USA.
00004 //#
00005 //# This library is free software; you can redistribute it and/or modify it
00006 //# under the terms of the GNU Library General Public License as published by
00007 //# the Free Software Foundation; either version 2 of the License, or (at your
00008 //# option) any later version.
00009 //#
00010 //# This library is distributed in the hope that it will be useful, but WITHOUT
00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00013 //# License for more details.
00014 //#
00015 //# You should have received a copy of the GNU Library General Public License
00016 //# along with this library; if not, write to the Free Software Foundation,
00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00018 //#
00019 //# Correspondence concerning AIPS++ should be addressed as follows:
00020 //#        Internet email: aips2-request@nrao.edu.
00021 //#        Postal address: AIPS++ Project Office
00022 //#                        National Radio Astronomy Observatory
00023 //#                        520 Edgemont Road
00024 //#
00025 //# $Id$
00026 
00027 #ifndef SYNTHESIS_SYNTHESISITERBOT_H
00028 #define SYNTHESIS_SYNTHESISITERBOT_H
00029 
00030 #include <casa/aips.h>
00031 #include <casa/OS/Timer.h>
00032 #include <casa/Containers/Record.h>
00033 #include <ms/MeasurementSets/MeasurementSet.h>
00034 #include <casa/Arrays/IPosition.h>
00035 #include <casa/Quanta/Quantum.h>
00036 #include <measures/Measures/MDirection.h>
00037 #include <synthesis/ImagerObjects/SIIterBot.h>
00038 #include <thread>
00039 
00040 //#include<casa/random.h>
00041 #include<synthesis/ImagerObjects/InteractiveMasking.h>
00042 
00043 namespace casa { //# NAMESPACE CASA - BEGIN
00044 
00045 // Forward declarations
00046 class MeasurementSet;
00047 class ViewerProxy;
00048 template<class T> class ImageInterface;
00049 
00050 // <summary> Class that contains functions needed for imager </summary>
00051 
00052 class SynthesisIterBot
00053 {
00054  public:
00055   // Default constructor
00056 
00057   SynthesisIterBot();
00058  virtual  ~SynthesisIterBot();
00059 
00060   // Copy constructor and assignment operator
00061 
00062   // launch thread which opens DBus connection...
00063   void openDBus( );
00064 
00065   // make all pure-inputs const
00066   void setupIteration(Record iterpars);
00067 
00068   void setInteractiveMode(Bool interactiveMode);
00069   virtual void   setIterationDetails(Record iterpars);
00070   Record getIterationDetails();
00071   Record getIterationSummary();
00072 
00073   int cleanComplete();
00074 
00075   Record getSubIterBot();
00076 
00077   void startMinorCycle(Record& initializationRecord);
00078   void endMinorCycle(Record& executionRecord);
00079 
00080   void endMajorCycle();
00081 
00082   void changeStopFlag( Bool stopflag );
00083 
00084   virtual Record pauseForUserInteractionOld(){return Record();};
00085 
00086 protected:
00087 
00088   virtual void pauseForUserInteraction();
00090 
00091   SHARED_PTR<SIIterBot_callback> actionRequestSync;
00092   SHARED_PTR<SIIterBot_state> itsLoopController;
00093 
00095 
00096  private:
00097   std::thread  *dbus_thread;
00098   void dbus_thread_launch_pad( );
00099 
00101   /*  Vector<String> itsImageList;
00102   Vector<Int> itsNTermList;
00103   Vector<Int> itsActionCodes;
00104   CountedPtr<InteractiveMasking> itsInteractiveMasker;
00105   */
00106 };
00107 
00108 
00109   class SynthesisIterBotWithOldGUI : public SynthesisIterBot
00110 {
00111  public:
00112   // Default constructor
00113 
00114   SynthesisIterBotWithOldGUI();
00115   ~SynthesisIterBotWithOldGUI(){};
00116 
00117   void   setIterationDetails(Record iterpars);
00118   Record pauseForUserInteractionOld();
00119 
00120 protected:
00121 
00122   void pauseForUserInteraction(){};
00123 
00124  private:
00125   Vector<String> itsImageList;
00126   Vector<Bool> itsMultiTermList;
00127   Vector<Int> itsActionCodes;
00128   CountedPtr<InteractiveMasking> itsInteractiveMasker;
00129 
00130   };
00131 
00132 
00133 } //# NAMESPACE CASA - END
00134 
00135 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1