00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef M_PROCESS_COMPOSITE_H
00024 #define M_PROCESS_COMPOSITE_H
00025
00026 #include "MProcess.h"
00027
00028 #include <vector>
00029
00038 class MProcessComposite : public MProcess
00039 {
00040
00041 public :
00042
00043
00044
00049 MProcessComposite ( string name ) : MProcess ( name ) { }
00050
00051
00052
00059 virtual MProcess * Child ( const unsigned int n ) const;
00060
00064 virtual unsigned int NumberOfChildren ( ) const;
00065
00066
00067
00072 virtual void Run ( const unsigned int n );
00073
00080 virtual void AddChild ( MProcess * child );
00081
00090 virtual void RemoveChild ( const unsigned int n );
00091
00099 virtual void InsertChild ( MProcess * child, const unsigned int n );
00100
00109 virtual void MoveChild ( const unsigned int n, const unsigned int m );
00110
00111 protected:
00112
00113
00114
00116 vector < MProcess * > _children;
00117
00118 };
00119
00120 #endif // M_PROCESS_COMPOSITE_H