certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi/scripts GenerateMessages.py CERTI_Message...


From: certi-cvs
Subject: [certi-cvs] certi/scripts GenerateMessages.py CERTI_Message...
Date: Sat, 06 Feb 2010 19:01:04 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      10/02/06 19:01:04

Modified files:
        scripts        : GenerateMessages.py CERTI_Message.msg 

Log message:
        Update C++ generator.
        Near to complete CERTI Message specifications

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenerateMessages.py?cvsroot=certi&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CERTI_Message.msg?cvsroot=certi&r1=1.8&r2=1.9

Patches:
Index: GenerateMessages.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenerateMessages.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- GenerateMessages.py 4 Feb 2010 08:16:13 -0000       1.28
+++ GenerateMessages.py 6 Feb 2010 19:01:03 -0000       1.29
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 ## USA
 ##
-## $Id: GenerateMessages.py,v 1.28 2010/02/04 08:16:13 erk Exp $
+## $Id: GenerateMessages.py,v 1.29 2010/02/06 19:01:03 erk Exp $
 ## ----------------------------------------------------------------------------
 
 """
@@ -574,6 +574,8 @@
     
     @param fields: the fields of this C{MessageType}
     @type fields: C{list} of C{MessageType.MessageField}  
+    @param merge: the merger of this C{MessageType}
+    @type merge: a C{MessageType}  
     """
     def __init__(self,name,fields,merge):
         super(MessageType,self).__init__(name=name)
@@ -584,18 +586,26 @@
         res = "message %s " % self.name
         return res
     
-    
     def hasMerge(self):
         return self.merge != None
     
     class MessageField(ASTElement):
-        """ Represents a message type
+        """ Represents a message field            
         """
         def __init__(self,qualifier,typeid,name,defaultValue=None):
             super(MessageType.MessageField,self).__init__(name=name)
             self.qualifier    = qualifier
+            """ The field qualifier, which may be
+                 - repeated
+                 - optional
+                 - required 
+            """
             self.typeid       = typeid
+            """ The type of the field
+            """
             self.defaultValue = defaultValue
+            """ The default value for this field
+            """
             
         def hasDefaultValue(self):
             return self.defaultValue != None
@@ -1559,9 +1569,12 @@
             if methodName == 'read_string':
                 
stream.write("msgBuffer."+methodName+"("+field.name+indexField+");\n")
             else:
+                # We may have to vast in order to enforce conversion
+                if isinstance(field.typeid,NativeType):
+                   stream.write(field.name+indexField+" = 
static_cast<"+field.typeid.name+">(msgBuffer."+methodName+"());\n")
+                else:
                 stream.write(field.name+indexField+" = 
msgBuffer."+methodName+"();\n")
             
-        
         if field.qualifier == "optional":
             self.unIndent()
             stream.write(self.getIndent()+"}\n")
@@ -1577,7 +1590,7 @@
         stream.write(self.getIndent() + "switch (type) {\n")
         self.indent()
         for e in self.AST.eMessageType.values:            
-            stream.write(self.getIndent()+"case NetworkMessage::%s:\n" % 
e.name)
+            stream.write(self.getIndent()+"case %s::%s:\n" % 
(creator[0],e.name))
             self.indent()
             if None==e.type:
                 stream.write(self.getIndent()+"throw RTIinternalError(\"%s 
message type should not be used!!\");\n"%e.name)
@@ -1587,8 +1600,9 @@
             self.unIndent()        
         self.unIndent()
         stream.write(self.getIndent()+ "} "+self.commentLineBeginWith+" end if 
switch (type)\n")
+        stream.write(self.getIndent()+ "return msg;\n")
         self.unIndent()
-        stream.write(self.getIndent()+"}\n\n")
+        stream.write(self.getIndent()+("} /* end of %s::%s */\n\n" % 
(creator[1],creator[2])))
     
     def writeFactoryReceiver(self,stream):
         receiver = 
(self.AST.factory.receiver[0],self.AST.factory.name)+self.AST.factory.receiver[1:]
@@ -1609,7 +1623,7 @@
         stream.write(self.getIndent()+"msg->deserialize(msgBuffer);\n")
         stream.write(self.getIndent()+"return msg;\n")
         self.unIndent()
-        stream.write(self.getIndent()+"}\n\n")
+        stream.write(self.getIndent()+("} /* end of %s::%s */ \n\n" % 
(receiver[1],receiver[2])))
     
         
     def generateBody(self,stream,factoryOnly=False):

Index: CERTI_Message.msg
===================================================================
RCS file: /sources/certi/certi/scripts/CERTI_Message.msg,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- CERTI_Message.msg   3 Feb 2010 11:59:41 -0000       1.8
+++ CERTI_Message.msg   6 Feb 2010 19:01:04 -0000       1.9
@@ -34,9 +34,45 @@
     language Java   [import certi.Message]
 }
 
+native AttributeHandleSet {
+    language CXX  [include "RTItypes.hh"]
+    language Java [import hla.rti.AttributeHandleSet;]
+}
+
+native LogicalTimeInterval {
+    language CXX  [//unimplemented]
+    language Java [import hla.rti.AttributeHandleSet;]
+}
+
+native SuppliedAttributes {
+    language CXX  [//unimplemented]
+    language Java [import hla.rti.SuppliedAttributes;]
+}
+
+native FederateHandleSet {
+    language CXX  [#include "RTItypes.hh"]
+    language Java [import hla.rti.FederateHandleSet;]
+}
+
+native SuppliedParameters {
+    language CXX  [//unimplemented]
+    language Java [import hla.rti.SuppliedParameters;]
+}
+
+native Regions {
+    language CXX  [#include "RTItypes.hh"]
+    language Java [import hla.rti.Regions;]
+}
+
+native Extents {
+    language CXX  [//unimplemented]
+    language Java [import hla.rti.Extents;]
+}
+
 native ResignAction  {
     representation uint16
     language CXX [#include "RTItypes.hh"]      
+    language CXX [typedef RTI::ResignAction ResignAction;]     
 }
 
 native Handle {
@@ -89,11 +125,6 @@
     language CXX [#include "certi.hh"]
 }
 
-native InteractionHandle {
-    representation uint32
-    language CXX [#include "certi.hh"]
-}
-
 native TransportType {
     representation uint8
     language CXX [#include "certi.hh"]
@@ -104,6 +135,10 @@
     language CXX [#include "certi.hh"]
 }
 
+// Closing connexion message
+message M_Close_Connexion : merge Message {
+}
+
 message M_Create_Federation_Execution : merge Message {
        required string federationName // the federation name
        required string FEDid          // the Federation ID which is in fact a 
filename
@@ -272,7 +307,7 @@
 }
 
 message M_Change_Interaction_Transportation_Type : merge Message {
-       required InteractionHandle interactionClass
+       required InteractionClassHandle interactionClass
         required TransportType     transport
         required OrderType         order
 }
@@ -364,7 +399,7 @@
 }
 
 message M_Change_Interaction_Order_Type : merge Message {
-       required InteractionHandle interactionClass
+       required InteractionClassHandle interactionClass
         required TransportType     transport
         required OrderType         order
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]