QtProtobuf  0.6
Protobuf plugin to generate Qt classes
All Classes Functions Variables Typedefs Enumerations Enumerator Modules Pages
templates.h
1 /*
2  * MIT License
3  *
4  * Copyright (c) 2019 Alexey Edelev <semlanik@gmail.com>, Tatyana Borisova <tanusshhka@mail.ru>
5  *
6  * This file is part of QtProtobuf project https://git.semlanik.org/semlanik/qtprotobuf
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a copy of this
9  * software and associated documentation files (the "Software"), to deal in the Software
10  * without restriction, including without limitation the rights to use, copy, modify,
11  * merge, publish, distribute, sublicense, and/or sell copies of the Software, and
12  * to permit persons to whom the Software is furnished to do so, subject to the following
13  * conditions:
14  *
15  * The above copyright notice and this permission notice shall be included in all copies
16  * or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
19  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
20  * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
21  * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23  * DEALINGS IN THE SOFTWARE.
24  */
25 
26 #pragma once
27 
28 #include <unordered_map>
29 #include <string>
30 #include <google/protobuf/descriptor.h>
31 
32 namespace QtProtobuf {
33 namespace generator {
34 
40 class Templates {
41 public:
42  static const std::vector<std::string> ListOfQmlExeptions;
43  static const char *ProtoSufix;
44  static const char *DefaultProtobufIncludesTemplate;
45  static const char *QmlProtobufIncludesTemplate;
46  static const char *GlobalEnumClassNameTemplate;
47  static const char *PreambleTemplate;
48  static const char *DisclaimerTemplate;
49  static const char *InternalIncludeTemplate;
50  static const char *ExternalIncludeTemplate;
51  static const char *GlobalEnumIncludeTemplate;
52  static const char *UsingQtProtobufNamespaceTemplate;
53  static const char *ManualRegistrationDeclaration;
54  static const char *ManualRegistrationComplexTypeDefinition;
55  static const char *ManualRegistrationGlobalEnumDefinition;
56  static const char *ComplexGlobalEnumFieldRegistrationTemplate;
57  static const char *ComplexListTypeUsingTemplate;
58  static const char *MapTypeUsingTemplate;
59  static const char *MessageMapTypeUsingTemplate;
60  static const char *NestedMessageUsingTemplate;
61  static const char *EnumTypeRepeatedTemplate;
62  static const char *NamespaceTemplate;
63  static const char *UsingNamespaceTemplate;
64  static const char *ClassDeclarationTemplate;
65  static const char *ProtoClassForwardDeclarationTemplate;
66  static const char *ProtoClassDeclarationBeginTemplate;
67  static const char *ConstructorHeaderTemplate;
68  static const char *ClassDefinitionTemplate;
69  static const char *QObjectMacro;
70 
71  static const char *PropertyTemplate;
72  static const char *RepeatedPropertyTemplate;
73  static const char *NonScriptablePropertyTemplate;
74  static const char *NonScriptableAliasPropertyTemplate;
75  static const char *MessagePropertyTemplate;
76  static const char *QmlListPropertyTemplate;
77 
78  static const char *ConstructorParameterTemplate;
79  static const char *ConstructorMessageParameterTemplate;
80  static const char *ConstructorRepeatedParameterTemplate;
81  static const char *ProtoConstructorBeginTemplate;
82  static const char *ProtoConstructorEndTemplate;
83 
84  static const char *ConstructorParameterDefinitionTemplate;
85  static const char *ConstructorMessageParameterDefinitionTemplate;
86  static const char *ConstructorRepeatedParameterDefinitionTemplate;
87 
88  static const char *ProtoConstructorDefinitionBeginTemplate;
89  static const char *ProtoConstructorDefinitionEndTemplate;
90 
91  static const char *MemberTemplate;
92  static const char *ListMemberTemplate;
93  static const char *ComplexMemberTemplate;
94  static const char *PublicBlockTemplate;
95  static const char *PrivateBlockTemplate;
96  static const char *EnumDefinitionTemplate;
97  static const char *EnumFieldTemplate;
98  static const char *ConstructorTemplate;
99  static const char *QObjectConstructorTemplate;
100  static const char *CopyConstructorDeclarationTemplate;
101  static const char *MoveConstructorDeclarationTemplate;
102  static const char *CopyConstructorDefinitionTemplate;
103  static const char *MoveConstructorDefinitionTemplate;
104  static const char *EmptyCopyConstructorDefinitionTemplate;
105  static const char *EmptyMoveConstructorDefinitionTemplate;
106  static const char *DeletedCopyConstructorTemplate;
107  static const char *DeletedMoveConstructorTemplate;
108  static const char *CopyFieldTemplate;
109  static const char *CopyComplexFieldTemplate;
110  static const char *AssignComplexFieldTemplate;
111  static const char *MoveMessageFieldTemplate;
112  static const char *MoveAssignMessageFieldTemplate;
113  static const char *MoveComplexFieldTemplate;
114  static const char *MoveComplexFieldConstructorTemplate;
115  static const char *MoveFieldTemplate;
116  static const char *EnumMoveFieldTemplate;
117  static const char *AssignmentOperatorDeclarationTemplate;
118  static const char *AssignmentOperatorDefinitionTemplate;
119  static const char *EmptyAssignmentOperatorDefinitionTemplate;
120  static const char *AssignmentOperatorReturnTemplate;
121  static const char *MoveAssignmentOperatorDeclarationTemplate;
122  static const char *MoveAssignmentOperatorDefinitionTemplate;
123  static const char *EmptyMoveAssignmentOperatorDefinitionTemplate;
124  static const char *EqualOperatorDeclarationTemplate;
125  static const char *EqualOperatorDefinitionTemplate;
126  static const char *EmptyEqualOperatorDefinitionTemplate;
127  static const char *EqualOperatorPropertyTemplate;
128  static const char *EqualOperatorMessagePropertyTemplate;
129  static const char *NotEqualOperatorDeclarationTemplate;
130  static const char *NotEqualOperatorDefinitionTemplate;
131  static const char *GetterPrivateMessageDeclarationTemplate;
132  static const char *GetterPrivateMessageDefinitionTemplate;
133  static const char *GetterMessageDeclarationTemplate;
134  static const char *GetterMessageDefinitionTemplate;
135  static const char *GetterTemplate;
136  static const char *NonScriptableGetterTemplate;
137  static const char *GetterContainerExtraTemplate;
138  static const char *GetterQmlListDeclarationTemplate;
139  static const char *GetterQmlListDefinitionTemplate;
140  static const char *SetterPrivateTemplateDeclarationMessageType;
141  static const char *SetterPrivateTemplateDefinitionMessageType;
142  static const char *SetterTemplateDeclarationMessageType;
143  static const char *SetterTemplateDefinitionMessageType;
144  static const char *SetterTemplateDeclarationComplexType;
145  static const char *SetterTemplateDefinitionComplexType;
146  static const char *SetterTemplate;
147  static const char *NonScriptableSetterTemplate;
148  static const char *SignalsBlockTemplate;
149  static const char *SignalTemplate;
150  static const char *FieldsOrderingContainerTemplate;
151  static const char *FieldOrderTemplate;
152  static const char *EnumTemplate;
153  static const char *SimpleBlockEnclosureTemplate;
154  static const char *SemicolonBlockEnclosureTemplate;
155  static const char *EmptyBlockTemplate;
156  static const char *PropertyInitializerTemplate;
157  static const char *PropertyDefaultInitializerTemplate;
158  static const char *MessagePropertyInitializerTemplate;
159  static const char *MessagePropertyDefaultInitializerTemplate;
160  static const char *ConstructorContentTemplate;
161  static const char *DeclareMetaTypeTemplate;
162  static const char *DeclareMetaTypeListTemplate;
163  static const char *DeclareMessageMetaTypeTemplate;
164  static const char *DeclareComplexListTypeTemplate;
165  static const char *DeclareComplexQmlListTypeTemplate;
166  static const char *DeclareMetaTypeMapTemplate;
167  static const char *RegisterLocalEnumTemplate;
168  static const char *RegisterMapTemplate;
169  static const char *RegisterMetaTypeTemplate;
170  static const char *RegisterGlobalEnumMetaTypeTemplate;
171  static const char *RegisterMetaTypeTemplateNoNamespace;
172  static const char *RegisterQmlListPropertyMetaTypeTemplate;
173  static const char *QEnumTemplate;
174  static const char *RegisterSerializersTemplate;
175  static const char *RegisterEnumSerializersTemplate;
176  static const char *RegistrarTemplate;
177  static const char *EnumRegistrarTemplate;
178  static const char *QmlRegisterTypeTemplate;
179  static const char *QmlRegisterTypeUncreatableTemplate;
180  static const char *QmlRegisterEnumTypeTemplate;
181  //Service templates
182  static const char *ClientConstructorDefinitionTemplate;
183 
184  static const char *ClientMethodDeclarationSyncTemplate;
185  static const char *ClientMethodDeclarationAsyncTemplate;
186  static const char *ClientMethodDeclarationAsync2Template;
187  static const char *ClientMethodDeclarationQmlTemplate;
188  static const char *ClientMethodDeclarationQml2Template;
189 
190  static const char *ServerMethodDeclarationTemplate;
191 
192  static const char *ClientMethodDefinitionSyncTemplate;
193  static const char *ClientMethodDefinitionAsyncTemplate;
194  static const char *ClientMethodDefinitionAsync2Template;
195  static const char *ClientMethodDefinitionQmlTemplate;
196  static const char *ClientMethodDefinitionQml2Template;
197 
198  //Streaming
199  static const char *ClientMethodSignalDeclarationTemplate;
200  static const char *ClientMethodServerStreamDeclarationTemplate;
201  static const char *ClientMethodServerStream2DeclarationTemplate;
202  static const char *ClientMethodServerStreamQmlDeclarationTemplate;
203  static const char *ClientMethodServerStreamDefinitionTemplate;
204  static const char *ClientMethodServerStream2DefinitionTemplate;
205  static const char *ClientMethodServerStreamQmlDefinitionTemplate;
206 
207  static const char *ListSuffix;
208  static const char *ProtoFileSuffix;
209  static const char *GrpcFileSuffix;
210  static const char *EnumClassSuffix;
211 
212  static const std::unordered_map<::google::protobuf::FieldDescriptor::Type, std::string> TypeReflection;
213 
214  static const char *QtProtobufNamespace;
215  static const char *QtProtobufNestedNamespace;
216 
217  static const char *FieldEnumTemplate;
218  static const char *FieldNumberTemplate;
219  static const char *QtProtobufFieldEnum;
220 };
221 
222 } //namespace generator
223 } //namespace QtProtobuf