// here we should have includes for all used types
// from all packages.
#include "DeployTypes.hpp"

Component* deploy(int argc, char **argv);
bool isSerializeEnabled();
void serialize(char **buf, size_t *len);
void deserialize(const char *buf, size_t len);

namespace staticallocated{

    // data param for Comp__ROOT./
    

    AtomIPort__learn__intPort iport__ROOT__environment__sendInput("sendInput");

    AtomIPort__learn__silent iport__ROOT__environment__getInput("getInput");

    AtomIPort__learn__silent iport__ROOT__environment__getInputInitial("getInputInitial");

    AtomIPort__learn__silent iport__ROOT__environment__noInput("noInput");

    AtomEPort__learn__intPort port__ROOT__environment__sendInput("sendInput", false);

    AtomEPort__learn__silent port__ROOT__environment__getInput("getInput", false);

    AtomEPort__learn__silent port__ROOT__environment__getInputInitial("getInputInitial", false);

    AtomEPort__learn__silent port__ROOT__environment__noInput("noInput", false);

    // static init for Atom: Comp__ROOT__environment
    

    AT__learn__Environment Comp__ROOT__environment(
     "environment"
     , iport__ROOT__environment__sendInput, iport__ROOT__environment__getInput, iport__ROOT__environment__getInputInitial, iport__ROOT__environment__noInput
     
     , port__ROOT__environment__sendInput, port__ROOT__environment__getInput, port__ROOT__environment__getInputInitial, port__ROOT__environment__noInput
     
     
    );


    AtomIPort__learn__intPort iport__ROOT__camera__capture("capture");

    AtomIPort__learn__intPort iport__ROOT__camera__sendInput("sendInput");

    AtomEPort__learn__intPort port__ROOT__camera__capture("capture", false);

    AtomEPort__learn__intPort port__ROOT__camera__sendInput("sendInput", false);

    // static init for Atom: Comp__ROOT__camera
    

    AT__learn__Camera Comp__ROOT__camera(
     "camera"
     , iport__ROOT__camera__capture, iport__ROOT__camera__sendInput
     
     , port__ROOT__camera__capture, port__ROOT__camera__sendInput
     
     
    );


    AtomIPort__learn__intPort iport__ROOT__perception__getInput("getInput");

    AtomIPort__learn__intPort iport__ROOT__perception__sendResult("sendResult");

    AtomIPort__learn__silent iport__ROOT__perception__inference("inference");

    AtomEPort__learn__intPort port__ROOT__perception__getInput("getInput", false);

    AtomEPort__learn__intPort port__ROOT__perception__sendResult("sendResult", false);

    AtomEPort__learn__silent port__ROOT__perception__inference("inference", false);

    // static init for Atom: Comp__ROOT__perception
    

    AT__learn__Perception Comp__ROOT__perception(
     "perception"
     , iport__ROOT__perception__getInput, iport__ROOT__perception__sendResult, iport__ROOT__perception__inference
     
     , port__ROOT__perception__getInput, port__ROOT__perception__sendResult, port__ROOT__perception__inference
     
     
    );


    AtomIPort__learn__intPort iport__ROOT__controller__getSpeedLimit("getSpeedLimit");

    AtomIPort__learn__intPort iport__ROOT__controller__getSpeed("getSpeed");

    AtomIPort__learn__intPort iport__ROOT__controller__brake("brake");

    AtomIPort__learn__intPort iport__ROOT__controller__throttle("throttle");

    AtomIPort__learn__intPort iport__ROOT__controller__noSpeedChange("noSpeedChange");

    AtomEPort__learn__intPort port__ROOT__controller__getSpeedLimit("getSpeedLimit", false);

    AtomEPort__learn__intPort port__ROOT__controller__getSpeed("getSpeed", false);

    AtomEPort__learn__intPort port__ROOT__controller__brake("brake", false);

    AtomEPort__learn__intPort port__ROOT__controller__throttle("throttle", false);

    AtomEPort__learn__intPort port__ROOT__controller__noSpeedChange("noSpeedChange", false);

    // static init for Atom: Comp__ROOT__controller
    

    AT__learn__Controller Comp__ROOT__controller(
     "controller"
     , iport__ROOT__controller__getSpeedLimit, iport__ROOT__controller__getSpeed, iport__ROOT__controller__brake, iport__ROOT__controller__throttle, iport__ROOT__controller__noSpeedChange
     
     , port__ROOT__controller__getSpeedLimit, port__ROOT__controller__getSpeed, port__ROOT__controller__brake, port__ROOT__controller__throttle, port__ROOT__controller__noSpeedChange
     
     
    );


    AtomIPort__learn__intPort iport__ROOT__brake__brake("brake");

    AtomIPort__learn__intPort iport__ROOT__brake__changeSpeed("changeSpeed");

    AtomEPort__learn__intPort port__ROOT__brake__brake("brake", false);

    AtomEPort__learn__intPort port__ROOT__brake__changeSpeed("changeSpeed", false);

    // static init for Atom: Comp__ROOT__brake
    

    AT__learn__Brake Comp__ROOT__brake(
     "brake"
     , iport__ROOT__brake__brake, iport__ROOT__brake__changeSpeed
     
     , port__ROOT__brake__brake, port__ROOT__brake__changeSpeed
     
     
    );


    AtomIPort__learn__intPort iport__ROOT__throttle__throttle("throttle");

    AtomIPort__learn__intPort iport__ROOT__throttle__changeSpeed("changeSpeed");

    AtomEPort__learn__intPort port__ROOT__throttle__throttle("throttle", false);

    AtomEPort__learn__intPort port__ROOT__throttle__changeSpeed("changeSpeed", false);

    // static init for Atom: Comp__ROOT__throttle
    

    AT__learn__Throttle Comp__ROOT__throttle(
     "throttle"
     , iport__ROOT__throttle__throttle, iport__ROOT__throttle__changeSpeed
     
     , port__ROOT__throttle__throttle, port__ROOT__throttle__changeSpeed
     
     
    );


    AtomIPort__learn__intPort iport__ROOT__speedSensor__getSpeed("getSpeed");

    AtomIPort__learn__intPort iport__ROOT__speedSensor__changeSpeed("changeSpeed");

    AtomEPort__learn__intPort port__ROOT__speedSensor__getSpeed("getSpeed", false);

    AtomEPort__learn__intPort port__ROOT__speedSensor__changeSpeed("changeSpeed", false);

    // static init for Atom: Comp__ROOT__speedSensor
    

    AT__learn__SpeedSensor Comp__ROOT__speedSensor(
     "speedSensor"
     , iport__ROOT__speedSensor__getSpeed, iport__ROOT__speedSensor__changeSpeed
     
     , port__ROOT__speedSensor__getSpeed, port__ROOT__speedSensor__changeSpeed
     
     
    );


    QPR__learn__intPort ref__ROOT__capture__p1(port__ROOT__environment__sendInput, false);

    QPR__learn__intPort ref__ROOT__capture__p2(port__ROOT__camera__capture, false);

    ConnT__learn__intConnector Conn__ROOT__capture(
        "capture",
        ref__ROOT__capture__p1, ref__ROOT__capture__p2
        
        );

    QPR__learn__intPort ref__ROOT__getPerceptionInput__p1(port__ROOT__camera__sendInput, false);

    QPR__learn__intPort ref__ROOT__getPerceptionInput__p2(port__ROOT__perception__getInput, false);

    ConnT__learn__intConnector Conn__ROOT__getPerceptionInput(
        "getPerceptionInput",
        ref__ROOT__getPerceptionInput__p1, ref__ROOT__getPerceptionInput__p2
        
        );

    QPR__learn__intPort ref__ROOT__getSpeedLimit__p1(port__ROOT__perception__sendResult, false);

    QPR__learn__intPort ref__ROOT__getSpeedLimit__p2(port__ROOT__controller__getSpeedLimit, false);

    ConnT__learn__intConnector Conn__ROOT__getSpeedLimit(
        "getSpeedLimit",
        ref__ROOT__getSpeedLimit__p1, ref__ROOT__getSpeedLimit__p2
        
        );

    QPR__learn__intPort ref__ROOT__getSpeed__p1(port__ROOT__speedSensor__getSpeed, false);

    QPR__learn__intPort ref__ROOT__getSpeed__p2(port__ROOT__controller__getSpeed, false);

    ConnT__learn__intConnector Conn__ROOT__getSpeed(
        "getSpeed",
        ref__ROOT__getSpeed__p1, ref__ROOT__getSpeed__p2
        
        );

    QPR__learn__intPort ref__ROOT__throttleCommand__p1(port__ROOT__controller__throttle, false);

    QPR__learn__intPort ref__ROOT__throttleCommand__p2(port__ROOT__throttle__throttle, false);

    ConnT__learn__intConnector Conn__ROOT__throttleCommand(
        "throttleCommand",
        ref__ROOT__throttleCommand__p1, ref__ROOT__throttleCommand__p2
        
        );

    QPR__learn__intPort ref__ROOT__brakeCommand__p1(port__ROOT__controller__brake, false);

    QPR__learn__intPort ref__ROOT__brakeCommand__p2(port__ROOT__brake__brake, false);

    ConnT__learn__intConnector Conn__ROOT__brakeCommand(
        "brakeCommand",
        ref__ROOT__brakeCommand__p1, ref__ROOT__brakeCommand__p2
        
        );

    QPR__learn__intPort ref__ROOT__throttleAction__p1(port__ROOT__throttle__changeSpeed, false);

    QPR__learn__intPort ref__ROOT__throttleAction__p2(port__ROOT__speedSensor__changeSpeed, false);

    QPR__learn__silent ref__ROOT__throttleAction__p3(port__ROOT__environment__getInput, false);

    ConnT__learn__rendezVous Conn__ROOT__throttleAction(
        "throttleAction",
        ref__ROOT__throttleAction__p1, ref__ROOT__throttleAction__p2, ref__ROOT__throttleAction__p3
        
        );

    QPR__learn__intPort ref__ROOT__brakeAction__p1(port__ROOT__brake__changeSpeed, false);

    QPR__learn__intPort ref__ROOT__brakeAction__p2(port__ROOT__speedSensor__changeSpeed, false);

    QPR__learn__silent ref__ROOT__brakeAction__p3(port__ROOT__environment__getInput, false);

    ConnT__learn__rendezVous Conn__ROOT__brakeAction(
        "brakeAction",
        ref__ROOT__brakeAction__p1, ref__ROOT__brakeAction__p2, ref__ROOT__brakeAction__p3
        
        );

    QPR__learn__intPort ref__ROOT__noSpeedChangeAction__p1(port__ROOT__controller__noSpeedChange, false);

    QPR__learn__intPort ref__ROOT__noSpeedChangeAction__p2(port__ROOT__speedSensor__changeSpeed, false);

    QPR__learn__silent ref__ROOT__noSpeedChangeAction__p3(port__ROOT__environment__getInput, false);

    ConnT__learn__rendezVous Conn__ROOT__noSpeedChangeAction(
        "noSpeedChangeAction",
        ref__ROOT__noSpeedChangeAction__p1, ref__ROOT__noSpeedChangeAction__p2, ref__ROOT__noSpeedChangeAction__p3
        
        );

    QPR__learn__silent ref__ROOT__inference__p1(port__ROOT__perception__inference, false);

    ConnT__learn__singleton Conn__ROOT__inference(
        "inference",
        ref__ROOT__inference__p1
        
        );

    QPR__learn__silent ref__ROOT__noInput__p1(port__ROOT__environment__noInput, false);

    ConnT__learn__singleton Conn__ROOT__noInput(
        "noInput",
        ref__ROOT__noInput__p1
        
        );

    QPR__learn__silent ref__ROOT__getInputInitial__p1(port__ROOT__environment__getInputInitial, false);

    ConnT__learn__singleton Conn__ROOT__getInputInitial(
        "getInputInitial",
        ref__ROOT__getInputInitial__p1
        
        );

    // static init for Compound: Comp__ROOT

    CT__learn__Compound Comp__ROOT(
      "ROOT"
     , Comp__ROOT__environment, Comp__ROOT__camera, Comp__ROOT__perception, Comp__ROOT__controller, Comp__ROOT__brake, Comp__ROOT__throttle, Comp__ROOT__speedSensor
     
     , Conn__ROOT__capture, Conn__ROOT__getPerceptionInput, Conn__ROOT__getSpeedLimit, Conn__ROOT__getSpeed, Conn__ROOT__throttleCommand, Conn__ROOT__brakeCommand, Conn__ROOT__throttleAction, Conn__ROOT__brakeAction, Conn__ROOT__noSpeedChangeAction, Conn__ROOT__inference, Conn__ROOT__noInput, Conn__ROOT__getInputInitial
     
     
     
     
    );


// End of namespace.
};
