| // Protocol Buffers - Google's data interchange format | |
| // Copyright 2008 Google Inc. All rights reserved. | |
| // | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file or at | |
| // https://developers.google.com/open-source/licenses/bsd | |
| #ifndef PHP_PROTOBUF_MESSAGE_H_ | |
| #define PHP_PROTOBUF_MESSAGE_H_ | |
| #include <stdbool.h> | |
| #include "def.h" | |
| // Registers the PHP Message class. | |
| void Message_ModuleInit(); | |
| // Gets a upb_Message* for the PHP object |val|, which must either be a Message | |
| // object or 'null'. Returns true and stores the message in |msg| if the | |
| // conversion succeeded (we can't return upb_Message* because null->NULL is a | |
| // valid conversion). Returns false and raises a PHP error if this isn't a | |
| // Message object or null, or if the Message object doesn't match this | |
| // Descriptor. | |
| // | |
| // The given |arena| will be fused to this message's arena. | |
| bool Message_GetUpbMessage(zval* val, const Descriptor* desc, upb_Arena* arena, | |
| upb_Message** msg); | |
| // Gets or creates a PHP Message object to wrap the given upb_Message* and | |
| // |desc| and returns it in |val|. The PHP object will keep a reference to this | |
| // |arena| to ensure the underlying message data stays alive. | |
| // | |
| // If |msg| is NULL, this will return a PHP null. | |
| void Message_GetPhpWrapper(zval* val, const Descriptor* desc, upb_Message* msg, | |
| zval* arena); | |
| bool ValueEq(upb_MessageValue val1, upb_MessageValue val2, TypeInfo type); | |
| #endif // PHP_PROTOBUF_MESSAGE_H_ |