23 #include "dccl_native_protobuf.h"
24 #include "dccl/codec.h"
32 using google::protobuf::FieldDescriptor;
34 const char* native_pb_group =
"dccl.native_protobuf";
36 FieldCodecManager::add<v3::DefaultMessageCodec, FieldDescriptor::TYPE_MESSAGE>(native_pb_group);
37 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::int64, FieldDescriptor::TYPE_INT64>,
38 FieldDescriptor::TYPE_INT64>(native_pb_group);
39 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::int32, FieldDescriptor::TYPE_INT32>,
40 FieldDescriptor::TYPE_INT32>(native_pb_group);
42 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::int64, FieldDescriptor::TYPE_SINT64>,
43 FieldDescriptor::TYPE_SINT64>(native_pb_group);
44 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::int32, FieldDescriptor::TYPE_SINT32>,
45 FieldDescriptor::TYPE_SINT32>(native_pb_group);
47 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::uint64, FieldDescriptor::TYPE_UINT64>,
48 FieldDescriptor::TYPE_UINT64>(native_pb_group);
49 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::uint32, FieldDescriptor::TYPE_UINT32>,
50 FieldDescriptor::TYPE_UINT32>(native_pb_group);
52 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::int64, FieldDescriptor::TYPE_SFIXED64>,
53 FieldDescriptor::TYPE_SFIXED64>(native_pb_group);
54 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::int32, FieldDescriptor::TYPE_SFIXED32>,
55 FieldDescriptor::TYPE_SFIXED32>(native_pb_group);
57 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::uint64, FieldDescriptor::TYPE_FIXED64>,
58 FieldDescriptor::TYPE_FIXED64>(native_pb_group);
59 FieldCodecManager::add<PrimitiveTypeFieldCodec<dccl::uint32, FieldDescriptor::TYPE_FIXED32>,
60 FieldDescriptor::TYPE_FIXED32>(native_pb_group);
62 FieldCodecManager::add<PrimitiveTypeFieldCodec<double, FieldDescriptor::TYPE_DOUBLE>,
63 FieldDescriptor::TYPE_DOUBLE>(native_pb_group);
64 FieldCodecManager::add<PrimitiveTypeFieldCodec<float, FieldDescriptor::TYPE_FLOAT>,
65 FieldDescriptor::TYPE_FLOAT>(native_pb_group);
66 FieldCodecManager::add<PrimitiveTypeFieldCodec<bool, FieldDescriptor::TYPE_BOOL>,
67 FieldDescriptor::TYPE_BOOL>(native_pb_group);
69 FieldCodecManager::add<EnumFieldCodec, FieldDescriptor::TYPE_ENUM>(native_pb_group);
80 using google::protobuf::FieldDescriptor;
82 const char* native_pb_group =
"dccl.native_protobuf";
84 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::int64, FieldDescriptor::TYPE_INT64>,
85 FieldDescriptor::TYPE_INT64>(native_pb_group);
86 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::int32, FieldDescriptor::TYPE_INT32>,
87 FieldDescriptor::TYPE_INT32>(native_pb_group);
89 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::int64, FieldDescriptor::TYPE_SINT64>,
90 FieldDescriptor::TYPE_SINT64>(native_pb_group);
91 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::int32, FieldDescriptor::TYPE_SINT32>,
92 FieldDescriptor::TYPE_SINT32>(native_pb_group);
94 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::uint64, FieldDescriptor::TYPE_UINT64>,
95 FieldDescriptor::TYPE_UINT64>(native_pb_group);
96 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::uint32, FieldDescriptor::TYPE_UINT32>,
97 FieldDescriptor::TYPE_UINT32>(native_pb_group);
99 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::int64, FieldDescriptor::TYPE_SFIXED64>,
100 FieldDescriptor::TYPE_SFIXED64>(native_pb_group);
101 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::int32, FieldDescriptor::TYPE_SFIXED32>,
102 FieldDescriptor::TYPE_SFIXED32>(native_pb_group);
104 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::uint64, FieldDescriptor::TYPE_FIXED64>,
105 FieldDescriptor::TYPE_FIXED64>(native_pb_group);
106 FieldCodecManager::remove<PrimitiveTypeFieldCodec<dccl::uint32, FieldDescriptor::TYPE_FIXED32>,
107 FieldDescriptor::TYPE_FIXED32>(native_pb_group);
109 FieldCodecManager::remove<PrimitiveTypeFieldCodec<double, FieldDescriptor::TYPE_DOUBLE>,
110 FieldDescriptor::TYPE_DOUBLE>(native_pb_group);
111 FieldCodecManager::remove<PrimitiveTypeFieldCodec<float, FieldDescriptor::TYPE_FLOAT>,
112 FieldDescriptor::TYPE_FLOAT>(native_pb_group);
113 FieldCodecManager::remove<PrimitiveTypeFieldCodec<bool, FieldDescriptor::TYPE_BOOL>,
114 FieldDescriptor::TYPE_BOOL>(native_pb_group);
116 FieldCodecManager::remove<EnumFieldCodec, FieldDescriptor::TYPE_ENUM>(native_pb_group);
119 FieldCodecManager::remove<v3::DefaultMessageCodec, FieldDescriptor::TYPE_MESSAGE>(native_pb_group);
126 {
return field_value->index(); }
130 const google::protobuf::EnumDescriptor* e = this_field()->enum_type();
132 if(wire_value < e->value_count())
134 const google::protobuf::EnumValueDescriptor* return_value = e->value(wire_value);