text: /*
   * Copyright 1996-2020 Cyberbotics Ltd.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  #ifndef WEBOTS_ROS_MESSAGE_NODE_ADD_FORCE_OR_TORQUE_H
  #define WEBOTS_ROS_MESSAGE_NODE_ADD_FORCE_OR_TORQUE_H
  
  #include "ros/service_traits.h"
  
  #include "node_add_force_or_torqueRequest.h"
  #include "node_add_force_or_torqueResponse.h"
  
  namespace webots_ros
  {
  
  struct node_add_force_or_torque
  {
  
  typedef node_add_force_or_torqueRequest Request;
  typedef node_add_force_or_torqueResponse Response;
  Request request;
  Response response;
  
  typedef Request RequestType;
  typedef Response ResponseType;
  
  };
  } // namespace webots_ros
  
  namespace ros
  {
  namespace service_traits
  {
  
  template<>
  struct MD5Sum< ::webots_ros::node_add_force_or_torque > {
    static const char* value()
    {
      return "c741c774685e3d317ac9b286bef0788d";
    }
  
    static const char* value(const ::webots_ros::node_add_force_or_torque&) { return value(); }
  };
  
  template<>
  struct DataType< ::webots_ros::node_add_force_or_torque > {
    static const char* value()
    {
      return "webots_ros/node_add_force_or_torque";
    }
  
    static const char* value(const ::webots_ros::node_add_force_or_torque&) { return value(); }
  };
  
  template<>
  struct MD5Sum< ::webots_ros::node_add_force_or_torqueRequest>
  {
    static const char* value()
    {
      return MD5Sum< ::webots_ros::node_add_force_or_torque >::value();
    }
    static const char* value(const ::webots_ros::node_add_force_or_torqueRequest&)
    {
      return value();
    }
  };
  
  template<>
  struct DataType< ::webots_ros::node_add_force_or_torqueRequest>
  {
    static const char* value()
    {
      return DataType< ::webots_ros::node_add_force_or_torque >::value();
    }
    static const char* value(const ::webots_ros::node_add_force_or_torqueRequest&)
    {
      return value();
    }
  };
  
  template<>
  struct MD5Sum< ::webots_ros::node_add_force_or_torqueResponse>
  {
    static const char* value()
    {
      return MD5Sum< ::webots_ros::node_add_force_or_torque >::value();
    }
    static const char* value(const ::webots_ros::node_add_force_or_torqueResponse&)
    {
      return value();
    }
  };
  
  template<>
  struct DataType< ::webots_ros::node_add_force_or_torqueResponse>
  {
    static const char* value()
    {
      return DataType< ::webots_ros::node_add_force_or_torque >::value();
    }
    static const char* value(const ::webots_ros::node_add_force_or_torqueResponse&)
    {
      return value();
    }
  };
  
  } // namespace service_traits
  } // namespace ros
  
  #endif // WEBOTS_ROS_MESSAGE_NODE_ADD_FORCE_OR_TORQUE_H
  