webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Macros | Typedefs | Functions | Variables
protobuf.h File Reference
#include <php.h>
#include "upb.h"

Go to the source code of this file.

Classes

struct  DescriptorPool
 
struct  Descriptor
 
struct  FieldDescriptor
 
struct  OneofDescriptor
 
struct  EnumDescriptor
 
struct  MessageField
 
struct  MessageLayout
 
struct  MessageHeader
 
struct  MessageBuilderContext
 
struct  OneofBuilderContext
 
struct  EnumBuilderContext
 

Macros

#define PHP_PROTOBUF_EXTNAME   "protobuf"
 
#define PHP_PROTOBUF_VERSION   "0.01"
 
#define PROTOBUF_G(v)   (protobuf_globals.v)
 
#define NATIVE_SLOT_MAX_SIZE   sizeof(uint64_t)
 
#define MAP_KEY_FIELD   1
 
#define MAP_VALUE_FIELD   2
 
#define ONEOF_CASE_NONE   0
 
#define MESSAGE_FIELD_NO_CASE   ((size_t)-1)
 
#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)
 
#define DEFINE_PHP_WRAPPER(class_name, class_name_lower, name, intern)
 
#define DEFINE_PHP_ZVAL(name)
 
#define DEFINE_PHP_STRING(name, value)
 
#define CHECK_UPB(code, msg)
 
#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)
 
#define CHECK_TYPE(field, type)
 

Typedefs

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
 

Functions

 PHP_MINIT_FUNCTION (protobuf)
 
size_t native_slot_size (upb_fieldtype_t type)
 
bool is_map_field (const upb_fielddef *field)
 
const upb_fielddefmap_field_key (const upb_fielddef *field)
 
const upb_fielddefmap_field_value (const upb_fielddef *field)
 
const upb_fielddefmap_entry_key (const upb_msgdef *msgdef)
 
const upb_fielddefmap_entry_value (const upb_msgdef *msgdef)
 
void layout_init (MessageLayout *layout, void *storage)
 
zval * layout_get (MessageLayout *layout, const void *storage, const upb_fielddef *field TSRMLS_DC)
 
MessageLayoutcreate_layout (const upb_msgdef *msgdef)
 
void free_layout (MessageLayout *layout)
 
zval * native_slot_get (upb_fieldtype_t type, const void *memory TSRMLS_DC)
 
DescriptorPoolphp_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)
 
Descriptorphp_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)
 
MessageBuilderContextphp_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)
 
void add_def_obj (const void *def, zval *value)
 
zval * get_def_obj (const void *def)
 
void check_upb_status (const upb_status *status, const char *msg)
 

Variables

zend_class_entry * builder_type
 
zend_class_entry * descriptor_type
 
zend_class_entry * message_builder_context_type
 
DescriptorPoolgenerated_pool
 
zend_object_handlers * message_handlers
 
HashTable upb_def_to_php_obj_map
 

Macro Definition Documentation

◆ ALLOC

#define ALLOC (   class_name)    (class_name*) emalloc(sizeof(class_name))

◆ ALLOC_N

#define ALLOC_N (   class_name,
  n 
)    (class_name*) emalloc(sizeof(class_name) * n)

◆ CHECK_TYPE

#define CHECK_TYPE (   field,
  type 
)
Value:
if (Z_TYPE_P(field) != type) { \
zend_error(E_ERROR, "Unexpected type"); \
}
const FieldDescriptor * field
Definition: parser_unittest.cc:2279
EGLenum type
Definition: eglext.h:63

◆ CHECK_UPB

#define CHECK_UPB (   code,
  msg 
)
Value:
do { \
upb_status status = UPB_STATUS_INIT; \
code; \
check_upb_status(&status, msg); \
} while (0)
Definition: status.py:1
#define UPB_STATUS_INIT
Definition: upb.h:516

◆ DEFINE_PHP_OBJECT

#define DEFINE_PHP_OBJECT (   class_name,
  class_name_lower,
  name 
)
Value:
do { \
zval* name; \
MAKE_STD_ZVAL(name); \
object_init_ex(name, class_name_lower##_type); \
} while (0)
RTCMediaStreamTrackType _type
Definition: RTCMediaStreamTrack.mm:20
EGLImageKHR EGLint * name
Definition: eglext.h:851

◆ DEFINE_PHP_STRING

#define DEFINE_PHP_STRING (   name,
  value 
)
Value:
do { \
zval* name; \
MAKE_STD_ZVAL(name); \
ZVAL_STRING(name, value, 1); \
} while (0)
EGLAttrib * value
Definition: eglext.h:120
EGLImageKHR EGLint * name
Definition: eglext.h:851

◆ DEFINE_PHP_WRAPPER

#define DEFINE_PHP_WRAPPER (   class_name,
  class_name_lower,
  name,
  intern 
)
Value:
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);
RTCMediaStreamTrackType _type
Definition: RTCMediaStreamTrack.mm:20
EGLImageKHR EGLint * name
Definition: eglext.h:851
#define NULL
Definition: common_types.h:41

◆ DEFINE_PHP_ZVAL

#define DEFINE_PHP_ZVAL (   name)
Value:
do { \
zval* name; \
MAKE_STD_ZVAL(name); \
} while (0)
EGLImageKHR EGLint * name
Definition: eglext.h:851

◆ FREE

#define FREE (   object)    efree(object)

◆ MAP_KEY_FIELD

#define MAP_KEY_FIELD   1

◆ MAP_VALUE_FIELD

#define MAP_VALUE_FIELD   2

◆ MESSAGE_FIELD_NO_CASE

#define MESSAGE_FIELD_NO_CASE   ((size_t)-1)

◆ NATIVE_SLOT_MAX_SIZE

#define NATIVE_SLOT_MAX_SIZE   sizeof(uint64_t)

◆ ONEOF_CASE_NONE

#define ONEOF_CASE_NONE   0

◆ PHP_PROTOBUF_EXTNAME

#define PHP_PROTOBUF_EXTNAME   "protobuf"

◆ PHP_PROTOBUF_VERSION

#define PHP_PROTOBUF_VERSION   "0.01"

◆ PROTOBUF_G

#define PROTOBUF_G (   v)    (protobuf_globals.v)

◆ Z_ARRVAL_BEGIN_P

#define Z_ARRVAL_BEGIN_P (   zval_p)    Z_ARRVAL_P(zval_p)->pListHead

◆ Z_ARRVAL_SIZE_P

#define Z_ARRVAL_SIZE_P (   zval_p)    zend_hash_num_elements(Z_ARRVAL_P(zval_p))

◆ Z_BUCKET_NEXT_PP

#define Z_BUCKET_NEXT_PP (   bucket_pp)    *bucket_pp = (*bucket_pp)->pListNext

Typedef Documentation

◆ Descriptor

◆ DescriptorPool

◆ EnumBuilderContext

◆ EnumDescriptor

◆ FieldDescriptor

◆ MessageBuilderContext

◆ MessageField

◆ MessageHeader

◆ MessageLayout

◆ OneofBuilderContext

◆ OneofDescriptor

Function Documentation

◆ add_def_obj()

void add_def_obj ( const void def,
zval *  value 
)

◆ build_class_from_descriptor()

const zend_class_entry* build_class_from_descriptor ( zval *php_descriptor  TSRMLS_DC)

◆ check_upb_status()

void check_upb_status ( const upb_status status,
const char *  msg 
)

◆ create_layout()

MessageLayout* create_layout ( const upb_msgdef msgdef)

◆ descriptor_create()

zend_object_value descriptor_create ( zend_class_entry *ce  TSRMLS_DC)

◆ descriptor_free()

void descriptor_free ( void *object  TSRMLS_DC)

◆ descriptor_free_c()

void descriptor_free_c ( Descriptor *object  TSRMLS_DC)

◆ descriptor_init_c_instance()

void descriptor_init_c_instance ( Descriptor *intern  TSRMLS_DC)

◆ descriptor_name_set()

void descriptor_name_set ( Descriptor desc,
const char *  name 
)

◆ descriptor_pool_create()

zend_object_value descriptor_pool_create ( zend_class_entry *ce  TSRMLS_DC)

◆ descriptor_pool_free()

void descriptor_pool_free ( void *object  TSRMLS_DC)

◆ descriptor_pool_free_c()

void descriptor_pool_free_c ( DescriptorPool *object  TSRMLS_DC)

◆ descriptor_pool_init_c_instance()

void descriptor_pool_init_c_instance ( DescriptorPool *pool  TSRMLS_DC)

◆ free_layout()

void free_layout ( MessageLayout layout)

◆ get_def_obj()

zval* get_def_obj ( const void def)

◆ is_map_field()

bool is_map_field ( const upb_fielddef field)

◆ layout_get()

zval* layout_get ( MessageLayout layout,
const void storage,
const upb_fielddef *field  TSRMLS_DC 
)

◆ layout_init()

void layout_init ( MessageLayout layout,
void storage 
)

◆ map_entry_key()

const upb_fielddef* map_entry_key ( const upb_msgdef msgdef)

◆ map_entry_value()

const upb_fielddef* map_entry_value ( const upb_msgdef msgdef)

◆ map_field_key()

const upb_fielddef* map_field_key ( const upb_fielddef field)

◆ map_field_value()

const upb_fielddef* map_field_value ( const upb_fielddef field)

◆ message_builder_context_create()

zend_object_value message_builder_context_create ( zend_class_entry *ce  TSRMLS_DC)

◆ message_builder_context_free()

void message_builder_context_free ( void *object  TSRMLS_DC)

◆ message_builder_context_free_c()

void message_builder_context_free_c ( MessageBuilderContext *object  TSRMLS_DC)

◆ message_builder_context_init_c_instance()

void message_builder_context_init_c_instance ( MessageBuilderContext *intern  TSRMLS_DC)

◆ native_slot_get()

zval* native_slot_get ( upb_fieldtype_t  type,
const void *memory  TSRMLS_DC 
)

◆ native_slot_size()

size_t native_slot_size ( upb_fieldtype_t  type)

◆ PHP_FUNCTION()

PHP_FUNCTION ( get_generated_pool  )

◆ PHP_METHOD() [1/5]

PHP_METHOD ( DescriptorPool  ,
addMessage   
)

◆ PHP_METHOD() [2/5]

PHP_METHOD ( DescriptorPool  ,
finalize   
)

◆ PHP_METHOD() [3/5]

PHP_METHOD ( MessageBuilderContext  ,
optional   
)

◆ PHP_METHOD() [4/5]

PHP_METHOD ( MessageBuilderContext  ,
finalizeToPool   
)

◆ PHP_METHOD() [5/5]

PHP_METHOD ( Message  ,
encode   
)

◆ PHP_MINIT_FUNCTION()

PHP_MINIT_FUNCTION ( protobuf  )

◆ php_to_descriptor()

Descriptor* php_to_descriptor ( zval *value  TSRMLS_DC)

◆ php_to_descriptor_pool()

DescriptorPool* php_to_descriptor_pool ( zval *value  TSRMLS_DC)

◆ php_to_message_builder_context()

MessageBuilderContext* php_to_message_builder_context ( zval *value  TSRMLS_DC)

Variable Documentation

◆ builder_type

zend_class_entry* builder_type

◆ descriptor_type

zend_class_entry* descriptor_type

◆ generated_pool

zval* generated_pool

◆ message_builder_context_type

zend_class_entry* message_builder_context_type

◆ message_handlers

zend_object_handlers* message_handlers

◆ upb_def_to_php_obj_map

HashTable upb_def_to_php_obj_map