- Main Page
- Namespaces
- Classes
- Files
- Related Pages

# /Users/fpy/titan-1-5-MBARI/Mers/Interfaces/TaskFactory.h

    00001
    00002 //
    00003 // Copyright (c) 2004           Model-based Embedded and Robotic Systems Group
    00004 // All Rights Reserved          Massachusetts Institute of Technology
    00005 //
    00006 // This software is provided as is. Model-based Embedded and Robotic Systems
    00007 // (MERS) group does not assume any responsibility.
    00008 //
    00009 // Organization:        Model-based Embedded and Robotic Systems Group
    00010 //                                      Massachusetts Institute of Technology
    00011 //
    00013
    00014 #ifndef MERS_INTERFACES_TASK_FACTORY_HEADERFILE
    00015 #define MERS_INTERFACES_TASK_FACTORY_HEADERFILE
    00016
    00017 #include <vector>
    00018
    00019 #include <Mers/Utils/Lang/ReferencedObject.h>
    00020 #include <Mers/Utils/Containers/SharedPointer.h>
    00021 #include <Mers/Utils/Patterns/Factory.h>
    00022
    00023 namespace Mers {
    00024         namespace Utils {
    00025                 namespace Lang {
    00026                         class String;
    00027                 }
    00028         }
    00029   namespace Interfaces {
    00030
    00031     class Task;
    00032
    00045     class TaskFactory : public Mers::Utils::Lang::ReferencedObject,
    00046       public Mers::Utils::Patterns::Factory
    00047     {
    00048                 public:
    00050                         typedef ::Mers::Utils::Containers::SharedPointer
    00051                                 < ::Mers::Interfaces::Task > t_TaskSharedPointer;
    00053                         typedef ::Mers::Utils::Lang::String t_TaskName;
    00055                         typedef ::Mers::Utils::Lang::String t_TaskParameter;
    00056
    00057                 public:
    00061       TaskFactory();
    00062
    00066       virtual ~TaskFactory();
    00067
    00073       virtual t_TaskSharedPointer
    00074                                 createTask( const t_TaskName &taskName ) = 0;
    00075
    00083       virtual t_TaskSharedPointer
    00084                                 createTask( const t_TaskName &taskName,
    00085                                 ::std::vector<const t_TaskParameter *> const &parameters ) = 0;
    00086     };
    00087
    00088   }  // namespace Interfaces
    00089 } // namespace Mers
    00090
    00091 #endif  // MERS_INTERFACES_TASK_FACTORY_HEADERFILE
    00092