[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi/scripts GenMsgBase.py GenMsgC.py GenMsgJa...
From: |
CERTI CVS commits |
Subject: |
[certi-cvs] certi/scripts GenMsgBase.py GenMsgC.py GenMsgJa... |
Date: |
Thu, 28 Jul 2011 14:04:21 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 11/07/28 14:04:21
Modified files:
scripts : GenMsgBase.py GenMsgC.py GenMsgJava.py
Log message:
Update C generator
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenMsgBase.py?cvsroot=certi&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenMsgC.py?cvsroot=certi&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenMsgJava.py?cvsroot=certi&r1=1.5&r2=1.6
Patches:
Index: GenMsgBase.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenMsgBase.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- GenMsgBase.py 18 Jul 2011 11:54:10 -0000 1.10
+++ GenMsgBase.py 28 Jul 2011 14:04:20 -0000 1.11
@@ -19,7 +19,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenMsgBase.py,v 1.10 2011/07/18 11:54:10 erk Exp $
+## $Id: GenMsgBase.py,v 1.11 2011/07/28 14:04:20 erk Exp $
## ----------------------------------------------------------------------------
# We use logging for ... logging :-)
@@ -161,9 +161,9 @@
if lineNb==0:
stream.write(self.commentLineBeginWith)
else:
+ stream.write('\n')
stream.write(self.commentInsideLineBeginWith)
stream.write(str(line))
- stream.write('\n')
lineNb = lineNb + 1
if self.commentEndWith!=None:
stream.write(self.commentEndWith+'\n')
Index: GenMsgC.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenMsgC.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- GenMsgC.py 19 Jul 2011 20:21:21 -0000 1.6
+++ GenMsgC.py 28 Jul 2011 14:04:20 -0000 1.7
@@ -20,7 +20,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenMsgC.py,v 1.6 2011/07/19 20:21:21 erk Exp $
+## $Id: GenMsgC.py,v 1.7 2011/07/28 14:04:20 erk Exp $
## ----------------------------------------------------------------------------
"""
@@ -34,7 +34,6 @@
import sys
import os
-
class CGenerator(GenMsgBase.CodeGenerator):
"""
This is a C generator for C{MessageAST}.
@@ -185,7 +184,7 @@
stream.write(self.getIndent())
stream.write(targetTypeName + ' is'
+ self.upperFirst(field.name)
- + 'On(uint32_t rank)')
+ + 'On(%s_t* cthis, uint32_t rank)')
if not headerOnly:
stream.write(' {return cthis->' + field.name +
'[rank];}\n')
else:
@@ -211,7 +210,7 @@
stream.write(self.getIndent())
stream.write(targetTypeName + ' is'
+ self.upperFirst(field.name)
- + 'On(%s* cthis) '
+ + 'On(%s_t* cthis) '
% (self.nameprefix + msg.name))
if not headerOnly:
stream.write(' {return cthis->' + field.name + ';}\n')
@@ -483,7 +482,7 @@
if msg.hasMerge():
stream.write(self.getIndent()
+ '%s super;\n'
- % msg.merge.name)
+ % self.getTargetTypeName(msg.merge.name))
# write fields
for field in msg.fields:
@@ -562,21 +561,18 @@
+ '%s* %s(%s stream)'
% creceiver)
stream.write('; \n')
- stream.write(self.getIndent() + '*/\n')
-
# may close any open namespaces
-
self.closeNamespaces(stream)
# close usual HEADER protecting MACRO
-
- stream.write(self.commentLineBeginWith + ' %s\n'
- % headerProtectMacroName)
+ stream.write(self.commentLineBeginWith +
+ headerProtectMacroName + self.commentEndWith
+ +"\n")
stream.write('#endif\n')
def writeInitFieldStatement(self, stream, field):
if field.qualifier == 'optional':
- stream.write(self.getIndent()+'_has'
+ stream.write(self.getIndent()+'newObj->_has'
+ self.upperFirst(field.name)
+ '=0;\n')
# Sequence are initialized to unallocated pointer
@@ -613,22 +609,22 @@
indexField = ''
if field.qualifier == 'optional':
stream.write(self.getIndent())
- stream.write('MB_write_bool(msgBuffer,_has%s);\n'
+ stream.write('MB_write_bool(msgBuffer,cthis->_has%s);\n'
% self.upperFirst(field.name))
stream.write(self.getIndent())
- stream.write('if (_has%s) {\n'
+ stream.write('if (cthis->_has%s) {\n'
% self.upperFirst(field.name))
self.indent()
elif field.qualifier == 'repeated':
indexField = '[i]'
stream.write(self.getIndent())
stream.write('uint32_t ' + field.name + 'Size = '
- + field.name + 'size;\n')
+ +'cthis->'+ field.name + 'size;\n')
stream.write(self.getIndent())
- stream.write('MB_write_uint32(msgBuffer,' + field.name
+ stream.write('MB_write_uint32(msgBuffer,cthis->' + field.name
+ 'Size);\n')
stream.write(self.getIndent())
- stream.write('for (uint32_t i = 0; i < ' + field.name
+ stream.write('for (uint32_t i = 0; i <cthis->' + field.name
+ 'Size; ++i) {\n')
self.indent()
@@ -655,11 +651,9 @@
+ " don't know how to serialize native field <%s>
of type <%s>\n"
% (field.name, field.typeid.name))
else:
-
# field has one Serialize Method Name found in the map
-
stream.write(methodName)
- stream.write('(msgBuffer,' + field.name + indexField + ');\n')
+ stream.write('(msgBuffer,cthis->' + field.name + indexField +
');\n')
if field.qualifier == 'optional':
self.unIndent()
@@ -731,10 +725,10 @@
indexField = ''
if field.qualifier == 'optional':
stream.write(self.getIndent())
- stream.write('_has%s = MB_read_bool(msgBuffer);\n'
+ stream.write('cthis->_has%s = MB_read_bool(msgBuffer);\n'
% self.upperFirst(field.name))
stream.write(self.getIndent())
- stream.write('if (_has%s) {\n'
+ stream.write('if (cthis->_has%s) {\n'
% self.upperFirst(field.name))
self.indent()
elif field.qualifier == 'repeated':
@@ -743,21 +737,19 @@
stream.write('uint32_t ' + field.name
+ 'Size = MB_read_uint32(msgBuffer);\n')
stream.write(self.getIndent())
- stream.write(field.name + 'size =' + field.name
+ stream.write('cthis->'+field.name + 'size =' + field.name
+ 'Size);\n')
stream.write(self.getIndent())
- stream.write('for (uint32_t i = 0; i < ' + field.name
+ stream.write('for (uint32_t i = 0; i < cthis->' + field.name
+ 'Size; ++i) {\n')
self.indent()
stream.write(self.getIndent())
methodName = self.getDeSerializeMethodName(field.typeid.name)
if None == methodName: # field has no Deserialize Method Name found
in the map
-
# non native field case
-
if field.typeid.name in [m.name for m in self.AST.messages]:
- stream.write(field.name + indexField
+ stream.write('cthis->'+field.name + indexField
+ '_deserialize(msgBuffer);\n')
elif field.typeid.name in [m.name for m in self.AST.enums]:
@@ -768,8 +760,7 @@
methodName = self.getDeSerializeMethodName('uint32')
# We should check if the uint32 value is in enum range before
casting it into enumtype
-
- stream.write(field.name + indexField + ' = static_cast<'
+ stream.write('cthis->'+field.name + indexField + ' =
static_cast<'
+ targetTypeName + '>('
+ methodName + ' ());\n')
else:
@@ -783,9 +774,7 @@
+ " don't know how to deserialize native field
<%s> of type <%s>\n"
% (field.name, field.typeid.name))
else:
-
# field has one Deserialize Method Name found in the map
-
if methodName == 'read_string':
stream.write(methodName + '(msgBuffer,'
+ field.name + indexField + ');\n')
@@ -794,12 +783,12 @@
# We may have to vast in order to enforce conversion
if isinstance(field.typeid, GenMsgAST.NativeType):
- stream.write(field.name + indexField
+ stream.write('cthis->'+field.name + indexField
+ ' = static_cast<'
+ field.typeid.name + '>('
+ methodName + '(msgBuffer));\n')
else:
- stream.write(field.name + indexField
+ stream.write('cthis->'+field.name + indexField
+ ' = ' + methodName
+ '(msgBuffer);\n')
@@ -986,9 +975,9 @@
if len(msg.fields) > 0:
# begin serialize method
stream.write(self.getIndent()
- + 'void %s_serialize(%s* msgBuffer) {\n'
- % (msg.name,
- self.serializeBufferType))
+ + 'void %s_serialize(%s_t* cthis, %s*
msgBuffer) {\n'
+ % ((self.nameprefix+msg.name),
+ (self.nameprefix+msg.name),
self.serializeBufferType))
self.indent()
if msg.hasMerge():
self.writeCommentLines(stream,"Call mother class")
@@ -1001,14 +990,12 @@
stream.write(self.getIndent() + '''}
''')
-
# end serialize method
# begin deserialize method
-
stream.write(self.getIndent()
- + 'void %s_deserialize(%s* msgBuffer) {\n'
- % (msg.name,
+ + 'void %s_deserialize(%s_t* cthis, %s*
msgBuffer) {\n'
+ % ((self.nameprefix+msg.name),
(self.nameprefix+msg.name),
self.serializeBufferType))
self.indent()
if msg.hasMerge():
Index: GenMsgJava.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenMsgJava.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- GenMsgJava.py 15 Jul 2011 12:22:02 -0000 1.5
+++ GenMsgJava.py 28 Jul 2011 14:04:21 -0000 1.6
@@ -19,7 +19,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenMsgJava.py,v 1.5 2011/07/15 12:22:02 erk Exp $
+## $Id: GenMsgJava.py,v 1.6 2011/07/28 14:04:21 erk Exp $
## ----------------------------------------------------------------------------
"""
@@ -236,9 +236,7 @@
if len(msg.fields) > 0:
for field in msg.fields:
javaFile.write(self.getIndent() + 'private ')
-
# Combined field and "plain" field must not be treated the
same way
-
if not isinstance(field,
GenMsgAST.MessageType.CombinedField):
self.writeFieldStatement(javaFile, field)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi/scripts GenMsgBase.py GenMsgC.py GenMsgJa...,
CERTI CVS commits <=