Metadata IDL(使用cyclonedds cxx)生成的*\u DCPS.hpp文件中的元信息是什么?

Metadata IDL(使用cyclonedds cxx)生成的*\u DCPS.hpp文件中的元信息是什么?,metadata,idl,data-distribution-service,Metadata,Idl,Data Distribution Service,我使用cyclonedds cxx及其IDL编译器翻译IDL文件,以便与cyclonedds cxx一起使用。我有这个IDL文件: #ifndef TRANSPORTDATA_IDL #define TRANSPORTDATA_IDL #include "Transform_.idl" module TransportData { struct Data { long userID; //@key geometry_msgs::msg::dds_:

我使用cyclonedds cxx及其IDL编译器翻译IDL文件,以便与cyclonedds cxx一起使用。我有这个IDL文件:

#ifndef TRANSPORTDATA_IDL
#define TRANSPORTDATA_IDL

#include "Transform_.idl"

module TransportData
{
  struct Data
  {
    long userID; //@key
    geometry_msgs::msg::dds_::Transform_ transform_;
  };
  #pragma keylist Data userID
};

#endif  // TRANSPORTDATA_IDL

此IDL文件已转换为Transportdata_DCPS.hpp,如下所示:

\ifndef isocp2\u传输数据\u H
#定义ISOCP2_传输数据
#包括“dds/dds.hpp”
#包括“TransportData.h”
#包括“TransportDataSplDcps.h”
#包括“org/eclipse/cyclonedds/topic/TopicTraits.hpp”
#包括“org/eclipse/cyclonedds/topic/DataRepresentation.hpp”
名称空间组织{名称空间eclipse{名称空间cyclonedds{名称空间主题{
模板
主题类
{
公众:
static::org::eclipse::cyclonedds::topic::DataRepresentationId\u t getDataRepresentationId()
{
return::org::eclipse::cyclonedds::topic::OSPL\u表示;
}
static::std::vector getMetaData()
{
return::std::vector();
}
static::std::vector getTypeHash()
{
return::std::vector();
}
static::std::vector getextensions()
{
return::std::vector();
}
静态常量char*getKeyList()
{
返回“userID”;
}
静态常量char*getTypeName()
{
返回“TransportData::Data”;
}
静态常量dds\u主题\u描述符\u t*getDescriptor()
{
返回和传输数据\u数据描述;
}
静态copyInFunction getCopyIn()
{
返回(copyInFunction)\传输数据\数据\复制输入;
}
静态copyOutFunction getCopyOut()
{
返回(copyOutFunction)\传输数据\数据\复制输出;
}
静态大小\u t getSampleSize()
{
返回sizeof(传输数据\u数据);
}
};
}}}}
名称空间dds{名称空间主题{
模板
结构主题\类型\名称
{
静态std::字符串值()
{
return org::eclipse::cyclonedds::topic::TopicTraits::getTypeName();
}
};
}}
寄存器\主题\类型(TransportData::Data)
#endif/*ISOCPP\u传输数据\u H*/
关于这一点,我有三个问题:

  • 在哪里可以找到元信息的文档
  • DDS标准是否保证这些元信息存在
  • copyInFunction
    copyInFunction
    的作用是什么

这都是特定于实现的,使用Cyclone的新IDL编译器,输出将完全改变,甚至消除大部分生成的文件

<> >代码> COMPIN函数< /COD>和 > COUTOUTUMENT/<代码>这里引用的功能是将样本从C++表示复制到内部表示和后退。对于C++ API的初始提交,这个内部表示实际上是C表示中的示例,之后它被转换成CDR。新版本取消了这些功能,避免了这种复制