Program Listing for File message_type_support.h

Return to documentation for file (include/rosidl_typesupport_fastrtps_cpp/message_type_support.h)

// Copyright 2014-2015 Open Source Robotics Foundation, Inc.
//
// 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 ROSIDL_TYPESUPPORT_FASTRTPS_CPP__MESSAGE_TYPE_SUPPORT_H_
#define ROSIDL_TYPESUPPORT_FASTRTPS_CPP__MESSAGE_TYPE_SUPPORT_H_

#include <fastcdr/Cdr.h>

#include "rosidl_runtime_c/message_type_support_struct.h"

#define ROSIDL_TYPESUPPORT_FASTRTPS_HAS_PLAIN_TYPES

#define ROSIDL_TYPESUPPORT_FASTRTPS_UNBOUNDED_TYPE 0x00
#define ROSIDL_TYPESUPPORT_FASTRTPS_BOUNDED_TYPE   0x01
#define ROSIDL_TYPESUPPORT_FASTRTPS_PLAIN_TYPE     0x03


typedef struct message_type_support_callbacks_t
{
  const char * message_namespace_;

  const char * message_name_;


  bool (* cdr_serialize)(
    const void * untyped_ros_message,
    eprosima::fastcdr::Cdr & cdr);


  bool (* cdr_deserialize)(
    eprosima::fastcdr::Cdr & cdr,
    void * untyped_ros_message);


  uint32_t (* get_serialized_size)(const void *);


  size_t (* max_serialized_size)(char & bounds_info);
} message_type_support_callbacks_t;

#endif  // ROSIDL_TYPESUPPORT_FASTRTPS_CPP__MESSAGE_TYPE_SUPPORT_H_