STK++ 1.0
STK_GProgram.h
Go to the documentation of this file.
00001 /*--------------------------------------------------------------------*/
00002 /*     Copyright (C) 2004-2007  Serge Iovleff
00003 
00004  This program is free software; you can redistribute it and/or modify
00005  it under the terms of the GNU Lesser General Public License as
00006  published by the Free Software Foundation; either version 2 of the
00007  License, or (at your option) any later version.
00008 
00009  This program is distributed in the hope that it will be useful,
00010  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  GNU Lesser General Public License for more details.
00013 
00014  You should have received a copy of the GNU Lesser General Public
00015  License along with this program; if not, write to the
00016  Free Software Foundation, Inc.,
00017  59 Temple Place,
00018  Suite 330,
00019  Boston, MA 02111-1307
00020  USA
00021 
00022  Contact : Serge.Iovleff@stkpp.org
00023  */
00024 
00025 /*
00026  * Project:  stkpp::gui::model
00027  * created on: 19 oct. 2009
00028  * Purpose:  .
00029  * Author:   iovleff, serge.iovleff@stkpp.org
00030  **/
00031 
00036 #ifndef STK_GPROGRAM_H
00037 #define STK_GPROGRAM_H
00038 
00039 #include <list>
00040 
00041 #include "STK_IPropertySource.h"
00042 
00043 namespace STK
00044 {
00045 
00046 class IStep;
00047 
00051 class GProgram : public IPropertySource
00052 {
00053   private:
00055     static const String ID_GPROGAM_NAME;
00056 
00058     static const PropertyDescriptor nameDescriptor_;
00059 
00061     String name_;
00062 
00064    std::list<IStep*> steps_;
00065 
00066   public:
00068     GProgram(String const& name);
00069 
00071     virtual ~GProgram();
00072 
00076     inline String const& name()
00077     {return name_;}
00078 
00080     void run();
00081 
00085     void addStep(IStep* step);
00086 
00090     void removeStep(IStep* step);
00091 
00107     bool addConnection(IStep* source, IStep* target);
00108 
00116     virtual bool isPropertySet(String const& id) const;
00117 
00125     virtual const String* getPropertyValue(String const& id) const;
00126 };
00127 
00128 } // namespace STK
00129 
00130 #endif /* STK_GPROGRAM_H */