OLD | NEW |
1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
7 // met: | 7 // met: |
8 // | 8 // |
9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 PyObject* values; | 79 PyObject* values; |
80 } ExtensionDict; | 80 } ExtensionDict; |
81 | 81 |
82 extern PyTypeObject ExtensionDict_Type; | 82 extern PyTypeObject ExtensionDict_Type; |
83 | 83 |
84 namespace extension_dict { | 84 namespace extension_dict { |
85 | 85 |
86 // Builds an Extensions dict for a specific message. | 86 // Builds an Extensions dict for a specific message. |
87 ExtensionDict* NewExtensionDict(CMessage *parent); | 87 ExtensionDict* NewExtensionDict(CMessage *parent); |
88 | 88 |
89 // Gets the number of extension values in this ExtensionDict as a python object. | |
90 // | |
91 // Returns a new reference. | |
92 PyObject* len(ExtensionDict* self); | |
93 | |
94 // Releases extensions referenced outside this dictionary to keep outside | |
95 // references alive. | |
96 // | |
97 // Returns 0 on success, -1 on failure. | |
98 int ReleaseExtension(ExtensionDict* self, | |
99 PyObject* extension, | |
100 const FieldDescriptor* descriptor); | |
101 | |
102 // Gets an extension from the dict for the given extension descriptor. | |
103 // | |
104 // Returns a new reference. | |
105 PyObject* subscript(ExtensionDict* self, PyObject* key); | |
106 | |
107 // Assigns a value to an extension in the dict. Can only be used for singular | |
108 // simple types. | |
109 // | |
110 // Returns 0 on success, -1 on failure. | |
111 int ass_subscript(ExtensionDict* self, PyObject* key, PyObject* value); | |
112 | |
113 // Clears an extension from the dict. Will release the extension if there | |
114 // is still an external reference left to it. | |
115 // | |
116 // Returns None on success. | |
117 PyObject* ClearExtension(ExtensionDict* self, | |
118 PyObject* extension); | |
119 | |
120 // Gets an extension from the dict given the extension name as opposed to | |
121 // descriptor. | |
122 // | |
123 // Returns a new reference. | |
124 PyObject* _FindExtensionByName(ExtensionDict* self, PyObject* name); | |
125 | |
126 // Gets an extension from the dict given the extension field number as | |
127 // opposed to descriptor. | |
128 // | |
129 // Returns a new reference. | |
130 PyObject* _FindExtensionByNumber(ExtensionDict* self, PyObject* number); | |
131 | |
132 } // namespace extension_dict | 89 } // namespace extension_dict |
133 } // namespace python | 90 } // namespace python |
134 } // namespace protobuf | 91 } // namespace protobuf |
135 | 92 |
136 } // namespace google | 93 } // namespace google |
137 #endif // GOOGLE_PROTOBUF_PYTHON_CPP_EXTENSION_DICT_H__ | 94 #endif // GOOGLE_PROTOBUF_PYTHON_CPP_EXTENSION_DICT_H__ |
OLD | NEW |