/src/google/protobuf-c/protobuf-c-private.h
C Header | 72 lines | 29 code | 11 blank | 32 comment | 0 complexity | cc91c39df6229f7680857fd18e926a45 MD5 | raw file
Possible License(s): Apache-2.0
- /* --- protobuf-c-private.h: private structures and functions --- */
- /*
- * Copyright 2008, Dave Benson.
- *
- * 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.
- */
- /* === needs to be declared for the PROTOBUF_C_BUFFER_SIMPLE_INIT macro === */
- void protobuf_c_buffer_simple_append (ProtobufCBuffer *buffer,
- size_t len,
- const unsigned char *data);
- /* === stuff which needs to be declared for use in the generated code === */
- struct _ProtobufCEnumValueIndex
- {
- const char *name;
- unsigned index; /* into values[] array */
- };
- /* IntRange: helper structure for optimizing
- int => index lookups
- in the case where the keys are mostly consecutive values,
- as they presumably are for enums and fields.
- The data structures assumes that the values in the original
- array are sorted */
- struct _ProtobufCIntRange
- {
- int start_value;
- unsigned orig_index;
- /* NOTE: the number of values in the range can
- be inferred by looking at the next element's orig_index.
- a dummy element is added to make this simple */
- };
- /* === declared for exposition on ProtobufCIntRange === */
- /* note: ranges must have an extra sentinel IntRange at the end whose
- orig_index is set to the number of actual values in the original array */
- /* returns -1 if no orig_index found */
- int protobuf_c_int_ranges_lookup (unsigned n_ranges,
- ProtobufCIntRange *ranges);
- #define PROTOBUF_C_SERVICE_DESCRIPTOR_MAGIC 0x14159bc3
- #define PROTOBUF_C_MESSAGE_DESCRIPTOR_MAGIC 0x28aaeef9
- #define PROTOBUF_C_ENUM_DESCRIPTOR_MAGIC 0x114315af
- /* === behind the scenes on the generated service's __init functions */
- typedef void (*ProtobufCServiceDestroy) (ProtobufCService *service);
- void
- protobuf_c_service_generated_init (ProtobufCService *service,
- const ProtobufCServiceDescriptor *descriptor,
- ProtobufCServiceDestroy destroy);
- void
- protobuf_c_service_invoke_internal(ProtobufCService *service,
- unsigned method_index,
- const ProtobufCMessage *input,
- ProtobufCClosure closure,
- void *closure_data);