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_Network...


From: certi-cvs
Subject: [certi-cvs] certi/scripts GenerateMessages.py CERTI_Network...
Date: Thu, 16 Jul 2009 13:13:15 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      09/07/16 13:13:15

Modified files:
        scripts        : GenerateMessages.py 
Added files:
        scripts        : CERTI_NetworkMessage.msg 
Removed files:
        scripts        : CertiNetworkMessage.msg 

Log message:
        CERTI Network Message spec file should be as complete
        as it is currently...
        Rename the file
        Generator should now generate a complete header
        Going on with C++ body and factory

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenerateMessages.py?cvsroot=certi&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CERTI_NetworkMessage.msg?cvsroot=certi&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CertiNetworkMessage.msg?cvsroot=certi&r1=1.2&r2=0

Patches:
Index: GenerateMessages.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenerateMessages.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- GenerateMessages.py 15 Jul 2009 20:57:24 -0000      1.9
+++ GenerateMessages.py 16 Jul 2009 13:13:15 -0000      1.10
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 ## USA
 ##
-## $Id: GenerateMessages.py,v 1.9 2009/07/15 20:57:24 erk Exp $
+## $Id: GenerateMessages.py,v 1.10 2009/07/16 13:13:15 erk Exp $
 ## ----------------------------------------------------------------------------
 
 """
@@ -259,7 +259,7 @@
     @param package: the package which the generated message will belong
                     this will be used by the specific AST generator
     @type package:  C{Package}                     
-    @param natives: the set of native messages described in this
+    @param natives: the set of native types described in this
                           C{MessageAST}
     @type natives: C{set} of C{NativeType}
     @param messages: the set of messages described in this C{MessageAST}
@@ -406,7 +406,7 @@
             return typename        
     
     def __repr__(self):
-        res = "AST with <%d> native message, <%d> enum, <%d> message type(s)" 
% (len(self.natives),len(self.enums),len(self.messages))
+        res = "AST with <%d> native type(s), <%d> enum, <%d> message type(s)" 
% (len(self.natives),len(self.enums),len(self.messages))
         res = res + " in package <%s>" % self.package
         return res    
     
@@ -960,6 +960,11 @@
             stream.write(" 
{"+field.name+"=new"+self.upperFirst(field.name)+";};\n")        
                                                     
     def generateHeader(self,stream):        
+        # write the usual header protecting MACRO
+        (headerProtectMacroName,ext) = os.path.splitext(self.AST.name)
+        headerProtectMacroName = "%s__HH" % headerProtectMacroName.upper()
+        stream.write("#ifndef %s"%headerProtectMacroName)
+        stream.write("#define %s"%headerProtectMacroName)        
         # Generate namespace for specified package package 
         # we may have nested namespace
         self.openNamespaces(stream)
@@ -1010,8 +1015,8 @@
             if msg.hasMerge():
                stream.write(self.getIndent()+"typedef %s 
Super;\n"%msg.merge.name) 
             # now write constructor/destructor
-            stream.write(self.getIndent()+msg.name+";\n")
-            stream.write(self.getIndent()+"virtual ~"+msg.name+";\n")
+            stream.write(self.getIndent()+msg.name+"();\n")
+            stream.write(self.getIndent()+"virtual ~"+msg.name+"();\n")
             
             # write virtual serialize and deserialize
             # if we have some specific field
@@ -1048,6 +1053,9 @@
             
         # may close any open namespaces 
         self.closeNamespaces(stream)
+        # close usual HEADER protecting MACRO
+        stream.write(self.commentLineBeginWith+"%s\n"%headerProtectMacroName)
+        stream.write("#endif")
 
 class JavaGenerator(CodeGenerator):
     """
@@ -1098,18 +1106,22 @@
     sys.exit()
 
 mainlogger.info("Generate %s from AST,..."%language)
-if language=="Text":    
+if language.lower()=="text":    
     textGen = TextGenerator(parser.AST)
     textGen.generate(output,gentype)    
-elif language=="C++":
+elif language.lower=="c++":
     cxxGen = CXXGenerator(parser.AST)
     cxxGen.generate(output,gentype)
-elif language=="Java":
+elif language.lower=="java":
     cxxGen = JavaGenerator(parser.AST)
     cxxGen.generate(output,gentype)
-elif language=="Python":
+elif language.lower()=="python":
     cxxGen = PythonGenerator(parser.AST)
     cxxGen.generate(output,gentype)
+elif language.lower()=="none":
+    mainlogger.info("Nothing to generate for <%s>."%language)
+else:
+    mainlogger.error("Language <%s> is unknown" % language)
 
 mainlogger.info("Generate %s from AST, Done."%language)
 

Index: CERTI_NetworkMessage.msg
===================================================================
RCS file: CERTI_NetworkMessage.msg
diff -N CERTI_NetworkMessage.msg
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ CERTI_NetworkMessage.msg    16 Jul 2009 13:13:15 -0000      1.1
@@ -0,0 +1,271 @@
+
+// ----------------------------------------------------------------------------
+// CERTI - HLA RunTime Infrastructure
+// Copyright (C) 2002-2008  ONERA
+//
+// This program is free software ; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation ; either version 2 of
+// the License, or (at your option) Any later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY ; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program ; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA
+//
+// ----------------------------------------------------------------------------
+// CERTI Network Messages description
+// ----------------------------------------------------------------------------
+// The messages related classes will be placed in the certi package
+package certi
+
+// Basic Message is the base class message for CERTI
+native BasicMessage
+
+// Network message is the base class
+// for message exchanged between RTIA and RTIG
+// AKA CERTI Network Message
+native NetworkMessage
+
+// Message is the base class 
+// for message exchanged between Federate and RTIA
+// AKA CERTI Message
+native Message
+
+enum SampleMessageType {
+   NOT_USED,
+   SMT_BASIC,
+   SMT_NETWORK_MESSAGE,
+   SMT_MESSAGE
+}
+
+native AttributeHandle
+message NM_WithHandleArray : merge  NetworkMessage {
+       repeated AttributeHandle handle 
+}
+
+message NM_DDM_Base : merge  NM_WithHandleArray {
+       required bool DDM_bool
+}
+
+message NM_Close_Connexion : merge NetworkMessage {}
+
+message NM_Message_Null : merge NetworkMessage {}
+
+message NM_Create_Federation_Execution : merge NetworkMessage {}
+
+message NM_Destroy_Federation_Execution : merge NetworkMessage {}
+
+message NM_Join_Federation_Execution : merge NetworkMessage {}
+
+message NM_Resign_Federation_Execution : merge NetworkMessage {}
+
+message NM_Set_Time_Regulating : merge NetworkMessage {
+       required bool regulator
+}
+
+message NM_Set_Time_Constrained : merge NetworkMessage {
+       required bool regulator
+}
+
+message NM_Time_Regulation_Enabled : merge NetworkMessage {}
+
+message NM_Time_Constrained_Enabled : merge NetworkMessage {}
+
+native ObjectClassHandle
+message NM_Start_Registration_For_Object_Class : merge NetworkMessage {
+       required ObjectClassHandle objectClass
+}
+
+message NM_Stop_Registration_For_Object_Class : merge NetworkMessage {
+}
+
+message NM_Set_Class_Relevance_Advisory_Switch : merge NetworkMessage {    
+       required bool classRelevanceAdvisorySwitch // value of CRA switch       
+}
+
+message NM_Set_Interaction_Relevance_Advisory_Switch : merge NetworkMessage {  
  
+       required bool interactionRelevanceAdvisorySwitch // value of IRA switch 
        
+}
+
+message NM_Set_Attribute_Relevance_Advisory_Switch : merge NetworkMessage {    
+       required bool attributeRelevanceAdvisorySwitch // value of ARA switch   
+}
+
+message NM_Set_Attribute_Scope_Advisory_Switch : merge NetworkMessage {    
+       required bool attributeScopeAdvisorySwitch // value of ASA switch       
+}
+
+message NM_Register_Federation_Synchronization_Point : merge NetworkMessage {  
  
+       required bool setExists // tell whether if the synchronization set is 
specified or not    
+}
+
+message NM_Synchronization_Point_Registration_Succeeded : merge NetworkMessage 
{}
+
+message NM_Announce_Synchronization_Point : merge NetworkMessage {}
+
+message NM_Synchronization_Point_Achieved : merge NetworkMessage {}
+
+message NM_Federation_Synchronized : merge NetworkMessage {}
+
+message NM_Request_Federation_Save : merge NetworkMessage {}
+
+message NM_Federate_Save_Begun : merge NetworkMessage {}
+
+message NM_Federate_Save_Complete : merge NetworkMessage {}
+
+message NM_Federate_Save_Not_Complete : merge NetworkMessage {}
+
+message NM_Initiate_Federate_Save : merge NetworkMessage {}
+
+message NM_Federation_Saved : merge NetworkMessage {}
+
+message NM_Federation_Not_Saved : merge NetworkMessage {}
+
+message NM_Request_Federation_Restore : merge NetworkMessage {}
+
+message NM_Federate_Restore_Complete : merge NetworkMessage {}
+
+message NM_Federate_Restore_Not_Complete : merge NetworkMessage {}
+
+message NM_Request_Federation_Restore_Succeeded : merge NetworkMessage {}
+
+message NM_Request_Federation_Restore_Failed : merge NetworkMessage {}
+
+message NM_Federation_Restore_Begun : merge NetworkMessage {}
+
+message NM_Initiate_Federate_Restore : merge NetworkMessage {}
+
+message NM_Federation_Restored : merge NetworkMessage {}
+
+message NM_Federation_Not_Restored : merge NetworkMessage {}
+
+message NM_Publish_Object_Class : merge NM_WithHandleArray {}
+
+message NM_Unpublish_Object_Class : merge NetworkMessage {}
+
+native InteractionClassHandle
+message NM_Publish_Interaction_Class : merge NetworkMessage {
+       required InteractionClassHandle interactionClass // the interaction 
class
+}
+
+message NM_Unpublish_Interaction_Class : merge NM_Publish_Interaction_Class {}
+
+message NM_Subscribe_Object_Class : merge NM_WithHandleArray {}
+
+message NM_Unsubscribe_Object_Class : merge NM_Unpublish_Object_Class {}
+
+message NM_Subscribe_Interaction_Class : merge NM_Publish_Interaction_Class {}
+
+message NM_Unsubscribe_Interaction_Class : merge NM_Publish_Interaction_Class 
{}
+
+message NM_Turn_Interactions_On : merge NM_Publish_Interaction_Class {}
+
+message NM_Turn_Interactions_Off : merge NM_Publish_Interaction_Class {}
+
+message NM_Register_Object : merge NetworkMessage {}
+
+message NM_Discover_Object : merge NM_Register_Object {}
+
+message NM_Update_Attribute_Values : merge NM_WithHandleArray {}
+
+message NM_Reflect_Attribute_Values : merge NM_Update_Attribute_Values {}
+
+message NM_Send_Interaction : merge NM_WithHandleArray {}
+
+message NM_Receive_Interaction : merge NM_Send_Interaction {}
+
+message NM_Delete_Object : merge NM_Register_Object {}
+
+message NM_Remove_Object : merge NM_Delete_Object {}
+
+message NM_Change_Attribute_Transport_Type : merge NetworkMessage {}
+
+message NM_Change_Attribute_Order_Type : merge NetworkMessage {}
+
+message NM_Change_Interaction_Transport_Type : merge NetworkMessage {}
+
+message NM_Change_Interaction_Order_Type : merge NetworkMessage {}
+
+message NM_Request_Class_Attribute_Value_Update : merge NetworkMessage {}
+
+native ObjectHandle
+message NM_Request_Object_Attribute_Value_Update : merge NM_WithHandleArray {
+       required ObjectHandle object
+}
+
+message NM_Is_Attribute_Owned_By_Federate : merge NetworkMessage {}
+
+message NM_Query_Attribute_Ownership : merge NM_Is_Attribute_Owned_By_Federate 
{}
+
+message NM_Attribute_Is_Not_Owned : merge NM_Is_Attribute_Owned_By_Federate {}
+
+message NM_Inform_Attribute_Ownership : merge 
NM_Is_Attribute_Owned_By_Federate {}
+
+message NM_Negotiated_Attribute_Ownership_Divestiture : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Attribute_Ownership_Acquisition_Notification : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Attribute_Ownership_Divestiture_Notification : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Request_Attribute_Ownership_Assumption : merge 
NM_Negotiated_Attribute_Ownership_Divestiture {}
+
+message NM_Attribute_Ownership_Unavailable : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Attribute_Ownership_Acquisition_If_Available : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Unconditional_Attribute_Ownership_Divestiture : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Attribute_Ownership_Acquisition : merge 
NM_Negotiated_Attribute_Ownership_Divestiture {}
+
+message NM_Request_Attribute_Ownership_Release : merge 
NM_Negotiated_Attribute_Ownership_Divestiture {}
+
+message NM_Cancel_Negotiated_Attribute_Ownership_Divestiture : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Attribute_Ownership_Release_Response : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Cancel_Attribute_Ownership_Acquisition : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+message NM_Confirm_Attribute_Ownership_Acquisition_Cancellation : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+native SpaceHandle
+message NM_DDM_Create_Region : merge NM_DDM_Base {
+       required SpaceHandle space
+       required int32 region
+}
+
+message NM_DDM_Modify_Region : merge NM_DDM_Base {
+       required int32 region
+}
+
+message NM_DDM_Delete_Region : merge NM_DDM_Base {
+       required int32 region
+}
+
+message NM_DDM_Associate_Region : merge NM_DDM_Base {
+       required int32 region
+       required ObjectHandle object
+}
+message NM_DDM_Unassociate_Region : merge NM_DDM_Base {}
+
+message NM_DDM_Register_Object : merge NM_DDM_Base {}
+
+message NM_DDM_Subscribe_Attributes : merge NM_DDM_Base {}
+message NM_DDM_Unsubscribe_Attributes : merge NM_DDM_Base {}
+
+message NM_DDM_Subscribe_Interaction : merge NM_DDM_Base {}
+message NM_DDM_Unsubscribe_Interaction : merge NM_DDM_Subscribe_Interaction {}
+
+message NM_Provide_Attribute_Value_Update : merge 
NM_Request_Object_Attribute_Value_Update {}
+
+
+
+message NM_Get_FED_File : merge NetworkMessage {
+       required string FEDid // the FED identifier
+       required string line  // one line of the FED file
+}

Index: CertiNetworkMessage.msg
===================================================================
RCS file: CertiNetworkMessage.msg
diff -N CertiNetworkMessage.msg
--- CertiNetworkMessage.msg     15 Jul 2009 20:57:25 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,192 +0,0 @@
-
-// ----------------------------------------------------------------------------
-// CERTI - HLA RunTime Infrastructure
-// Copyright (C) 2002-2008  ONERA
-//
-// This program is free software ; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation ; either version 2 of
-// the License, or (at your option) Any later version.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY ; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this program ; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA
-//
-// ----------------------------------------------------------------------------
-// CERTI Network Messages description
-// ----------------------------------------------------------------------------
-// The messages related classes will be placed in the certi package
-package certi
-
-// Basic Message is the base class message for CERTI
-native BasicMessage
-
-// Network message is the base class
-// for message exchanged between RTIA and RTIG
-// AKA CERTI Network Message
-native NetworkMessage
-
-// Message is the base class 
-// for message exchanged between Federate and RTIA
-// AKA CERTI Message
-native Message
-
-enum SampleMessageType {
-   NOT_USED,
-   SMT_BASIC,
-   SMT_NETWORK_MESSAGE,
-   SMT_MESSAGE
-}
-
-native AttributeHandle
-message NM_WithHandleArray : merge  NetworkMessage {
-       repeated AttributeHandle handle 
-}
-
-message NM_DDM_Base : merge  NM_WithHandleArray {
-       required bool DDM_bool
-}
-
-message NM_Close_Connexion : merge NetworkMessage {}
-
-message NM_Message_Null : merge NetworkMessage {}
-
-message NM_Create_Federation_Execution : merge NetworkMessage {}
-
-message NM_Destroy_Federation_Execution : merge NetworkMessage {}
-
-message NM_Join_Federation_Execution : merge NetworkMessage {}
-
-message NM_Resign_Federation_Execution : merge NetworkMessage {}
-
-message NM_Set_Time_Regulating : merge NetworkMessage {
-       required bool regulator
-}
-
-message NM_Set_Time_Constrained : merge NetworkMessage {
-       required bool regulator
-}
-
-message NM_Time_Regulation_Enabled : merge NetworkMessage {}
-
-message NM_Time_Constrained_Enabled : merge NetworkMessage {}
-
-native ObjectClassHandle
-message NM_Start_Registration_For_Object_Class : merge NetworkMessage {
-       required ObjectClassHandle objectClass
-}
-
-message NM_Stop_Registration_For_Object_Class : merge NetworkMessage {
-}
-
-message NM_Set_Class_Relevance_Advisory_Switch : merge NetworkMessage {    
-       required bool classRelevanceAdvisorySwitch // value of CRA switch       
-}
-
-message NM_Set_Interaction_Relevance_Advisory_Switch : merge NetworkMessage {  
  
-       required bool interactionRelevanceAdvisorySwitch // value of IRA switch 
        
-}
-
-message NM_Set_Attribute_Relevance_Advisory_Switch : merge NetworkMessage {    
-       required bool attributeRelevanceAdvisorySwitch // value of ARA switch   
-}
-
-message NM_Set_Attribute_Scope_Advisory_Switch : merge NetworkMessage {    
-       required bool attributeScopeAdvisorySwitch // value of ASA switch       
-}
-
-message NM_Register_Federation_Synchronization_Point : merge NetworkMessage {  
  
-       required bool setExists // tell whether if the synchronization set is 
specified or not    
-}
-
-message NM_Synchronization_Point_Registration_Succeeded : merge NetworkMessage 
{}
-
-message NM_Announce_Synchronization_Point : merge NetworkMessage {}
-
-message NM_Synchronization_Point_Achieved : merge NetworkMessage {}
-
-message NM_Federation_Synchronized : merge NetworkMessage {}
-
-message NM_Request_Federation_Save : merge NetworkMessage {}
-
-message NM_Federate_Save_Begun : merge NetworkMessage {}
-
-message NM_Federate_Save_Complete : merge NetworkMessage {}
-
-message NM_Federate_Save_Not_Complete : merge NetworkMessage {}
-
-message NM_Initiate_Federate_Save : merge NetworkMessage {}
-
-message NM_Federation_Saved : merge NetworkMessage {}
-
-message NM_Federation_Not_Saved : merge NetworkMessage {}
-
-message NM_Request_Federation_Restore : merge NetworkMessage {}
-
-message NM_Federate_Restore_Complete : merge NetworkMessage {}
-
-message NM_Federate_Restore_Not_Complete : merge NetworkMessage {}
-
-message NM_Request_Federation_Restore_Succeeded : merge NetworkMessage {}
-
-message NM_Request_Federation_Restore_Failed : merge NetworkMessage {}
-
-message NM_Federation_Restore_Begun : merge NetworkMessage {}
-
-message NM_Initiate_Federate_Restore : merge NetworkMessage {}
-
-message NM_Federation_Restored : merge NetworkMessage {}
-
-message NM_Federation_Not_Restored : merge NetworkMessage {}
-
-message NM_Publish_Object_Class : merge NM_WithHandleArray {}
-
-message NM_Unpublish_Object_Class : merge NetworkMessage {}
-
-native InteractionClassHandle
-message NM_Publish_Interaction_Class : merge NetworkMessage {
-       required InteractionClassHandle interactionClass // the interaction 
class
-}
-
-message NM_Unpublish_Interaction_Class : merge NM_Publish_Interaction_Class {}
-
-message NM_Subscribe_Object_Class : merge NM_WithHandleArray {}
-
-message NM_Unsubscribe_Object_Class : merge NM_Unpublish_Object_Class {}
-
-message NM_Subscribe_Interaction_Class : merge NM_Publish_Interaction_Class {}
-
-message NM_Unsubscribe_Interaction_Class : merge NM_Publish_Interaction_Class 
{}
-
-message NM_Turn_Interactions_On : merge NM_Publish_Interaction_Class {}
-
-message NM_Turn_Interactions_Off : merge NM_Publish_Interaction_Class {}
-
-message NM_Register_Object : merge NetworkMessage {}
-
-message NM_Discover_Object : merge NM_Register_Object {}
-
-message NM_Update_Attribute_Values : merge NM_WithHandleArray {}
-
-message NM_Reflect_Attribute_Values : merge NM_Update_Attribute_Values {}
-
-message NM_Send_Interaction : merge NM_WithHandleArray {}
-
-message NM_Receive_Interaction : merge NM_Send_Interaction {}
-
-message NM_Delete_Object : merge NM_Register_Object {}
-
-message NM_Remove_Object : merge NM_Delete_Object {}
-
-message NM_Change_Attribute_Transport_Type : merge NetworkMessage {}
-
-message NM_Get_FED_File : merge NetworkMessage {
-       required string FEDid // the FED identifier
-       required string line  // one line of the FED file
-}




reply via email to

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