Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
z
Classes
Class List
Class Hierarchy
Class Members
All
:
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Properties
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
z
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
grpc
third_party
upb
python
upb/python/convert.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009-2021, Google LLC
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
* * Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* * Neither the name of Google LLC nor the
13
* names of its contributors may be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
* ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
20
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
#ifndef PYUPB_CONVERT_H__
29
#define PYUPB_CONVERT_H__
30
31
#include "
protobuf.h
"
32
#include "
upb/def.h
"
33
#include "
upb/reflection.h
"
34
35
// Converts `val` to a Python object according to the type information in `f`.
36
// Any newly-created Python objects that reference non-primitive data from `val`
37
// will take a reference on `arena`; the caller must ensure that `val` belongs
38
// to `arena`. If the conversion cannot be performed, returns NULL and sets a
39
// Python error.
40
PyObject*
PyUpb_UpbToPy
(
upb_MessageValue
val,
const
upb_FieldDef
*
f
,
41
PyObject*
arena
);
42
43
// Converts `obj` to a upb_MessageValue `*val` according to the type information
44
// in `f`. If `arena` is provided, any string data will be copied into `arena`,
45
// otherwise the returned value will alias the Python-owned data (this can be
46
// useful for an ephemeral upb_MessageValue). If the conversion cannot be
47
// performed, returns false.
48
bool
PyUpb_PyToUpb
(PyObject*
obj
,
const
upb_FieldDef
*
f
,
upb_MessageValue
* val,
49
upb_Arena
*
arena
);
50
51
// Returns true if the given values (of type `f`) are equal.
52
bool
PyUpb_ValueEq
(
upb_MessageValue
val1
,
upb_MessageValue
val2
,
53
const
upb_FieldDef
*
f
);
54
55
// Returns true if the given messages (of type `m`) are equal.
56
bool
PyUpb_Message_IsEqual
(
const
upb_Message
* msg1,
const
upb_Message
* msg2,
57
const
upb_MessageDef
*
m
);
58
59
// Returns true if the two arrays (with element type `f`) are equal.
60
bool
PyUpb_Array_IsEqual
(
const
upb_Array
* arr1,
const
upb_Array
* arr2,
61
const
upb_FieldDef
*
f
);
62
63
#endif // PYUPB_CONVERT_H__
obj
OPENSSL_EXPORT const ASN1_OBJECT * obj
Definition:
x509.h:1671
grpc::testing::val1
const char val1[]
Definition:
client_context_test_peer_test.cc:34
PyUpb_ValueEq
bool PyUpb_ValueEq(upb_MessageValue val1, upb_MessageValue val2, const upb_FieldDef *f)
Definition:
upb/python/convert.c:244
upb_MessageDef
Definition:
upb/upb/def.c:100
arena
grpc_core::ScopedArenaPtr arena
Definition:
binder_transport_test.cc:237
upb_MessageValue
Definition:
upb/upb/reflection.h:40
autogen_x86imm.f
f
Definition:
autogen_x86imm.py:9
upb_Array
Definition:
msg_internal.h:424
grpc::testing::val2
const char val2[]
Definition:
client_context_test_peer_test.cc:35
reflection.h
PyUpb_Array_IsEqual
bool PyUpb_Array_IsEqual(const upb_Array *arr1, const upb_Array *arr2, const upb_FieldDef *f)
Definition:
upb/python/convert.c:308
protobuf.h
upb_Message
void upb_Message
Definition:
msg.h:49
upb_FieldDef
Definition:
upb/upb/def.c:56
def.h
PyUpb_PyToUpb
bool PyUpb_PyToUpb(PyObject *obj, const upb_FieldDef *f, upb_MessageValue *val, upb_Arena *arena)
Definition:
upb/python/convert.c:179
PyUpb_Message_IsEqual
bool PyUpb_Message_IsEqual(const upb_Message *msg1, const upb_Message *msg2, const upb_MessageDef *m)
Definition:
upb/python/convert.c:336
regress.m
m
Definition:
regress/regress.py:25
upb_Arena
Definition:
upb_internal.h:36
PyUpb_UpbToPy
PyObject * PyUpb_UpbToPy(upb_MessageValue val, const upb_FieldDef *f, PyObject *arena)
Definition:
upb/python/convert.c:35
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:55