Result.h

00001 #ifndef _Result_h
00002 #define _Result_h
00003 
00004 
00005 // SYSTEM INCLUDES
00006 //
00007 //#include <memory>
00008 
00009 // PROJECT INCLUDES
00010 
00011 // LOCAL INCLUDES
00012 //
00013 #include "CountedPtr.h"
00014 #include "IterationData.h"
00015 
00016 // FORWARD REFERENCES
00017 //
00018 class ProblemBase;
00019 
00020 
00026 class Result
00027 {
00028 public:
00030     typedef vector<CountedPtr<const IterationData> >    IterationContainer;
00031 
00032 // LIFECYCLE
00033 
00038     Result(unsigned firstIndex);
00039 
00042     virtual ~Result(void);
00043 
00044 
00045 // OPERATORS
00046 
00052     bool            operator==(const Result& right) const;
00053 
00054 // OPERATIONS
00055 
00056     // TODO: usunąć
00059     virtual void                Print(wxTextOutputStream& rOutput) const;
00060 
00061     // TODO: usunąć
00064     friend wxTextOutputStream&  operator<<(wxTextOutputStream&  rOutput,
00065                                            const Result&        result);
00066 
00067     // TODO: po co tu jest alokacja pamięci?
00068     void            AddIteration(auto_ptr<const IterationData> apIteration);
00069 
00070 // ACCESS
00071 
00074     const ProblemBase&          Problem() const;
00075 
00078     void       SetProblem(std::auto_ptr<const ProblemBase> apProblem);
00079 
00084     unsigned                    FirstIterationNumber() const;
00085 
00088     unsigned                    LastIterationNumber() const;
00089 
00092     const IterationContainer&   Iterations() const;
00093 
00098     const IterationData&        Iteration(unsigned number) const;
00099 
00105     unsigned                    IterationCount() const;
00106 
00107 
00115     const ColumnVector&         FinalResult() const;
00116 
00119     ColumnVector&               rFinalResult();
00120 
00123     unsigned                    EvaluationCount() const;
00124 
00127     unsigned&                   rEvaluationCount();
00128 
00132     void                        SetError(const wxString& message);
00133 
00136     const wxString&             ErrorMessage() const;
00137 
00141     bool                        IsAborted() const;
00142 
00143 // INQUIRY
00144 
00145 protected:
00146 private:
00149     ColumnVector mFinalResult;
00150 
00153     std::auto_ptr<const ProblemBase> mapProblem;
00154 
00157     unsigned    mEvaluationCount;
00158 
00160     IterationContainer  mIterations;
00161 
00163     unsigned            mFirstIndex;
00164 
00166     bool                mAborted;
00167 
00169     wxString            mErrorMessage;
00170 };
00171 
00172 // INLINE METHODS
00173 //
00174 
00175 // EXTERNAL REFERENCES
00176 //
00177 
00178 #endif  // _Result_h_

Wygenerowano Fri Sep 29 21:04:48 2006 dla EduOptim2 programem  doxygen 1.4.6