summaryrefslogtreecommitdiff
path: root/php/ext/google/protobuf/protobuf.h
diff options
context:
space:
mode:
Diffstat (limited to 'php/ext/google/protobuf/protobuf.h')
-rw-r--r--php/ext/google/protobuf/protobuf.h281
1 files changed, 0 insertions, 281 deletions
diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h
deleted file mode 100644
index f9038550..00000000
--- a/php/ext/google/protobuf/protobuf.h
+++ /dev/null
@@ -1,281 +0,0 @@
-#ifndef __GOOGLE_PROTOBUF_PHP_PROTOBUF_H__
-#define __GOOGLE_PROTOBUF_PHP_PROTOBUF_H__
-
-#include <php.h>
-
-#include "upb.h"
-
-#define PHP_PROTOBUF_EXTNAME "protobuf"
-#define PHP_PROTOBUF_VERSION "0.01"
-
-// Forward decls.
-struct DescriptorPool;
-struct Descriptor;
-struct FieldDescriptor;
-struct EnumDescriptor;
-struct MessageLayout;
-struct MessageField;
-struct MessageHeader;
-struct MessageBuilderContext;
-struct EnumBuilderContext;
-
-typedef struct DescriptorPool DescriptorPool;
-typedef struct Descriptor Descriptor;
-typedef struct FieldDescriptor FieldDescriptor;
-typedef struct OneofDescriptor OneofDescriptor;
-typedef struct EnumDescriptor EnumDescriptor;
-typedef struct MessageLayout MessageLayout;
-typedef struct MessageField MessageField;
-typedef struct MessageHeader MessageHeader;
-typedef struct MessageBuilderContext MessageBuilderContext;
-typedef struct OneofBuilderContext OneofBuilderContext;
-typedef struct EnumBuilderContext EnumBuilderContext;
-
-extern zend_class_entry* builder_type;
-extern zend_class_entry* descriptor_type;
-extern zend_class_entry* message_builder_context_type;
-
-extern DescriptorPool* generated_pool; // The actual generated pool
-
-ZEND_BEGIN_MODULE_GLOBALS(protobuf)
- zval* generated_pool;
- zend_object_handlers* message_handlers;
- HashTable upb_def_to_php_obj_map;
-ZEND_END_MODULE_GLOBALS(protobuf)
-
-ZEND_DECLARE_MODULE_GLOBALS(protobuf)
-
-#ifdef ZTS
-#define PROTOBUF_G(v) TSRMG(protobuf_globals_id, zend_protobuf_globals*, v)
-#else
-#define PROTOBUF_G(v) (protobuf_globals.v)
-#endif
-
-// -----------------------------------------------------------------------------
-// PHP functions and global variables.
-// -----------------------------------------------------------------------------
-
-PHP_MINIT_FUNCTION(protobuf);
-
-// -----------------------------------------------------------------------------
-// PHP class structure.
-// -----------------------------------------------------------------------------
-
-struct DescriptorPool {
- zend_object std;
- upb_symtab* symtab;
- HashTable* pending_list;
-};
-
-struct Descriptor {
- zend_object std;
- const upb_msgdef* msgdef;
- MessageLayout* layout;
- // zval* klass; // begins as NULL
- // const upb_handlers* fill_handlers;
- // const upb_pbdecodermethod* fill_method;
- const upb_handlers* pb_serialize_handlers;
- // const upb_handlers* json_serialize_handlers;
- // Handlers hold type class references for sub-message fields directly in some
- // cases. We need to keep these rooted because they might otherwise be
- // collected.
- // zval_array typeclass_references;
-};
-
-struct FieldDescriptor {
- zend_object std;
- const upb_fielddef* fielddef;
-};
-
-struct OneofDescriptor {
- zend_object std;
- const upb_oneofdef* oneofdef;
-};
-
-struct EnumDescriptor {
- zend_object std;
- const upb_enumdef* enumdef;
- // zval* module; // begins as NULL
-};
-
-// -----------------------------------------------------------------------------
-// Native slot storage abstraction.
-// -----------------------------------------------------------------------------
-
-#define NATIVE_SLOT_MAX_SIZE sizeof(uint64_t)
-
-size_t native_slot_size(upb_fieldtype_t type);
-
-#define MAP_KEY_FIELD 1
-#define MAP_VALUE_FIELD 2
-
-// Oneof case slot value to indicate that no oneof case is set. The value `0` is
-// safe because field numbers are used as case identifiers, and no field can
-// have a number of 0.
-#define ONEOF_CASE_NONE 0
-
-// These operate on a map field (i.e., a repeated field of submessages whose
-// submessage type is a map-entry msgdef).
-bool is_map_field(const upb_fielddef* field);
-const upb_fielddef* map_field_key(const upb_fielddef* field);
-const upb_fielddef* map_field_value(const upb_fielddef* field);
-
-// These operate on a map-entry msgdef.
-const upb_fielddef* map_entry_key(const upb_msgdef* msgdef);
-const upb_fielddef* map_entry_value(const upb_msgdef* msgdef);
-
-// -----------------------------------------------------------------------------
-// Message layout / storage.
-// -----------------------------------------------------------------------------
-
-#define MESSAGE_FIELD_NO_CASE ((size_t)-1)
-
-struct MessageField {
- size_t offset;
- size_t case_offset; // for oneofs, a uint32. Else, MESSAGE_FIELD_NO_CASE.
-};
-
-struct MessageLayout {
- const upb_msgdef* msgdef;
- MessageField* fields;
- size_t size;
-};
-
-void layout_init(MessageLayout* layout, void* storage);
-zval* layout_get(MessageLayout* layout, const void* storage,
- const upb_fielddef* field TSRMLS_DC);
-MessageLayout* create_layout(const upb_msgdef* msgdef);
-void free_layout(MessageLayout* layout);
-zval* native_slot_get(upb_fieldtype_t type, /*VALUE type_class,*/
- const void* memory TSRMLS_DC);
-
-// -----------------------------------------------------------------------------
-// Message class creation.
-// -----------------------------------------------------------------------------
-
-struct MessageHeader {
- zend_object std;
- Descriptor* descriptor; // kept alive by self.class.descriptor reference.
- // Data comes after this.
-};
-
-struct MessageBuilderContext {
- zend_object std;
- zval* descriptor;
- zval* pool;
-};
-
-struct OneofBuilderContext {
- zend_object std;
- // VALUE descriptor;
- // VALUE builder;
-};
-
-struct EnumBuilderContext {
- zend_object std;
- // VALUE enumdesc;
-};
-
-// Forward-declare all of the PHP method implementations.
-
-DescriptorPool* php_to_descriptor_pool(zval* value TSRMLS_DC);
-zend_object_value descriptor_pool_create(zend_class_entry *ce TSRMLS_DC);
-void descriptor_pool_free_c(DescriptorPool* object TSRMLS_DC);
-void descriptor_pool_free(void* object TSRMLS_DC);
-void descriptor_pool_init_c_instance(DescriptorPool* pool TSRMLS_DC);
-PHP_METHOD(DescriptorPool, addMessage);
-PHP_METHOD(DescriptorPool, finalize);
-
-Descriptor* php_to_descriptor(zval* value TSRMLS_DC);
-zend_object_value descriptor_create(zend_class_entry *ce TSRMLS_DC);
-void descriptor_init_c_instance(Descriptor* intern TSRMLS_DC);
-void descriptor_free_c(Descriptor* object TSRMLS_DC);
-void descriptor_free(void* object TSRMLS_DC);
-void descriptor_name_set(Descriptor *desc, const char *name);
-
-MessageBuilderContext* php_to_message_builder_context(zval* value TSRMLS_DC);
-zend_object_value message_builder_context_create(
- zend_class_entry* ce TSRMLS_DC);
-void message_builder_context_init_c_instance(
- MessageBuilderContext* intern TSRMLS_DC);
-void message_builder_context_free_c(MessageBuilderContext* object TSRMLS_DC);
-void message_builder_context_free(void* object TSRMLS_DC);
-PHP_METHOD(MessageBuilderContext, optional);
-PHP_METHOD(MessageBuilderContext, finalizeToPool);
-
-PHP_METHOD(Message, encode);
-const zend_class_entry* build_class_from_descriptor(
- zval* php_descriptor TSRMLS_DC);
-
-PHP_FUNCTION(get_generated_pool);
-
-// -----------------------------------------------------------------------------
-// Global map from upb {msg,enum}defs to wrapper Descriptor/EnumDescriptor
-// instances.
-// ----------------------------------------------------------------------------
-
-void add_def_obj(const void* def, zval* value);
-zval* get_def_obj(const void* def);
-
-// -----------------------------------------------------------------------------
-// Utilities.
-// -----------------------------------------------------------------------------
-
-// PHP Array utils.
-#define Z_ARRVAL_SIZE_P(zval_p) zend_hash_num_elements(Z_ARRVAL_P(zval_p))
-#define Z_ARRVAL_BEGIN_P(zval_p) Z_ARRVAL_P(zval_p)->pListHead
-#define Z_BUCKET_NEXT_PP(bucket_pp) *bucket_pp = (*bucket_pp)->pListNext
-
-#define DEFINE_PHP_OBJECT(class_name, class_name_lower, name) \
- do { \
- zval* name; \
- MAKE_STD_ZVAL(name); \
- object_init_ex(name, class_name_lower##_type); \
- } while (0)
-
-#define DEFINE_PHP_WRAPPER(class_name, class_name_lower, name, intern) \
- zval* name; \
- MAKE_STD_ZVAL(name); \
- object_init_ex(name, class_name_lower##_type); \
- Z_OBJVAL_P(name) \
- .handle = zend_objects_store_put( \
- intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, \
- class_name_lower##_free, NULL TSRMLS_CC);
-
-#define DEFINE_PHP_ZVAL(name) \
- do { \
- zval* name; \
- MAKE_STD_ZVAL(name); \
- } while (0)
-
-#define DEFINE_PHP_STRING(name, value) \
- do { \
- zval* name; \
- MAKE_STD_ZVAL(name); \
- ZVAL_STRING(name, value, 1); \
- } while (0)
-
-// Upb Utilities
-
-void check_upb_status(const upb_status* status, const char* msg);
-
-#define CHECK_UPB(code, msg) \
- do { \
- upb_status status = UPB_STATUS_INIT; \
- code; \
- check_upb_status(&status, msg); \
- } while (0)
-
-// Memory management
-
-#define ALLOC(class_name) (class_name*) emalloc(sizeof(class_name))
-#define ALLOC_N(class_name, n) (class_name*) emalloc(sizeof(class_name) * n)
-#define FREE(object) efree(object)
-
-// Type Checking
-#define CHECK_TYPE(field, type) \
- if (Z_TYPE_P(field) != type) { \
- zend_error(E_ERROR, "Unexpected type"); \
- }
-
-#endif // __GOOGLE_PROTOBUF_PHP_PROTOBUF_H__