[Top][All Lists]
[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: |
Sat, 30 Jan 2010 18:19:42 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/01/30 18:19:42
Modified files:
scripts : GenerateMessages.py CERTI_NetworkMessage.msg
CERTI_Message.msg
Log message:
Update Message Spec and C++ generator
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenerateMessages.py?cvsroot=certi&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CERTI_NetworkMessage.msg?cvsroot=certi&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CERTI_Message.msg?cvsroot=certi&r1=1.2&r2=1.3
Patches:
Index: GenerateMessages.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenerateMessages.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- GenerateMessages.py 25 Nov 2009 21:07:51 -0000 1.24
+++ GenerateMessages.py 30 Jan 2010 18:19:41 -0000 1.25
@@ -19,11 +19,22 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenerateMessages.py,v 1.24 2009/11/25 21:07:51 erk Exp $
+## $Id: GenerateMessages.py,v 1.25 2010/01/30 18:19:41 erk Exp $
## ----------------------------------------------------------------------------
"""
-The CERTI Message Generator
+The CERTI Message Generator.
+CERTI is an HLA RTI (High Level Architecture RunTime Infrastructure)
+which uses in its internal a lot of message based communication.
+Those messages:
+ should be as compact as possible in terms of memory consumption
+ should be easy to implement.
+
+The CERTI developer team did develop a message specification language
+inspired from Google Protocol buffer. CERTI message have several
+specifities which make Google Protocol buffer unusable for CERTI.
+
+
"""
import os
@@ -1305,6 +1316,12 @@
def generateHeader(self,stream,factoryOnly=False):
# write the usual header protecting MACRO
+ supposedHeaderName=stream.name
+ if supposedHeaderName != "<stdout>":
+ supposedHeaderName=os.path.basename(supposedHeaderName)
+ supposedHeaderName=os.path.splitext(supposedHeaderName)[0]
+ headerProtectMacroName = supposedHeaderName
+ else:
(headerProtectMacroName,ext) = os.path.splitext(self.AST.name)
headerProtectMacroName = "%s_HH" % headerProtectMacroName.upper()
stream.write("#ifndef %s\n"%headerProtectMacroName)
@@ -1352,6 +1369,7 @@
stream.write("typedef enum %s {\n" % enum.name)
self.indent()
first = True
+ lastname = (enum.values[len(enum.values)-1]).name
for enumval in enum.values:
if first:
stream.write(self.getIndent())
@@ -1359,6 +1377,9 @@
first=False
else:
stream.write(self.getIndent())
+ if (enumval.name==lastname):
+ stream.write("%s " % enumval.name)
+ else:
stream.write("%s, " % enumval.name)
self.writeComment(stream, enumval)
self.unIndent()
@@ -1418,7 +1439,7 @@
# end private
self.unIndent()
- stream.write(self.getIndent() + "}\n")
+ stream.write(self.getIndent() + "};\n")
# Generate Factory (if any)
# @todo
@@ -1444,7 +1465,7 @@
self.unIndent()
#end private
self.unIndent()
- stream.write(self.getIndent()+"}\n\n")
+ stream.write(self.getIndent()+"};\n\n")
# may close any open namespaces
self.closeNamespaces(stream)
@@ -1567,10 +1588,10 @@
self.indent()
stream.write(self.getIndent()+self.commentLineBeginWith+" FIXME This
is not thread safe\n")
stream.write(self.getIndent()+"static MessageBuffer msgBuffer;\n")
- stream.write(self.getIndent()+"NetworkMessage msgGen;\n")
- stream.write(self.getIndent()+"NetworkMessage* msg;\n\n")
+ stream.write(self.getIndent()+"%s msgGen;\n" % receiver[0])
+ stream.write(self.getIndent()+"%s* msg;\n\n" % receiver[0])
stream.write(self.getIndent()+self.commentLineBeginWith+" receive
generic message \n")
- stream.write(self.getIndent()+"msgGen.receive(socket,msgBuffer);\n")
+ stream.write(self.getIndent()+"msgGen.receive(stream,msgBuffer);\n")
stream.write(self.getIndent()+self.commentLineBeginWith+" create
specific message from type \n")
stream.write(self.getIndent()+"msg = ");
@@ -1590,6 +1611,13 @@
# add necessary standard includes
stream.write("#include <vector>\n")
stream.write("#include <string>\n")
+
+ # [Try to] add corresponding header include
+ supposedHeaderName=stream.name
+ if supposedHeaderName != "<stdout>":
+ supposedHeaderName=os.path.basename(supposedHeaderName)
+ supposedHeaderName=os.path.splitext(supposedHeaderName)[0]
+ stream.write("#include \""+supposedHeaderName+".hh\"\n")
# Generate namespace for specified package package
# we may have nested namespace
self.openNamespaces(stream)
Index: CERTI_NetworkMessage.msg
===================================================================
RCS file: /sources/certi/certi/scripts/CERTI_NetworkMessage.msg,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
Index: CERTI_Message.msg
===================================================================
RCS file: /sources/certi/certi/scripts/CERTI_Message.msg,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- CERTI_Message.msg 30 Jan 2010 15:24:44 -0000 1.2
+++ CERTI_Message.msg 30 Jan 2010 18:19:42 -0000 1.3
@@ -49,21 +49,168 @@
}
+message M_Register_Federation_Synchronization_Point : merge Message {
-
-message M_Enable_Time_Regulation {
+}
+message M_Synchronization_Point_Registration_Failed : merge Message {}
+message M_Synchronization_Point_Registration_Succeeded : merge Message {}
+message M_Announce_Synchronization_Point : merge Message {}
+message M_Synchronization_Point_Achieved : merge Message {}
+message M_Federation_Synchronized : merge Message {}
+message M_Request_Federation_Save : merge Message {}
+message M_Initiate_Federate_Save : merge Message {}
+message M_Federate_Save_Begun : merge Message {}
+message M_Federate_Save_Complete : merge Message {}
+message M_Federate_Save_Not_Complete : merge Message {}
+message M_Federation_Saved : merge Message {}
+message M_Federation_Not_Saved : merge Message {}
+message M_Request_Federation_Restore : merge Message {}
+message M_Request_Federation_Restore_Failed : merge Message {}
+message M_Request_Federation_Restore_Succeeded : merge Message {}
+message M_Initiate_Federate_Restore : merge Message {}
+message M_Federate_Restore_Complete : merge Message {}
+message M_Federate_Restore_Not_Complete : merge Message {}
+message M_Federation_Restored : merge Message {}
+message M_Federation_Not_Restored : merge Message {}
+message M_Federation_Restore_Begun : merge Message {}
+
+ // Declaration
+message M_Publish_Object_Class : merge Message {}
+message M_Unpublish_Object_Class : merge Message {}
+message M_Publish_Interaction_Class : merge Message {}
+message M_Unpublish_Interaction_Class : merge Message {}
+message M_Subscribe_Object_Class_Attributes : merge Message {}
+message M_Unsubscribe_Object_Class : merge Message {}
+message M_Subscribe_Interaction_Class : merge Message {}
+message M_Unsubscribe_Interaction_Class : merge Message {}
+message M_Start_Registration_For_Object_Class : merge Message {}
+message M_Stop_Registration_For_Object_Class : merge Message {}
+message M_Turn_Interactions_On : merge Message {}
+message M_Turn_Interactions_Off : merge Message {}
+
+ // Object
+message M_Register_Object_Instance : merge Message {}
+message M_Update_Attribute_Values : merge Message {}
+message M_Discover_Object_Instance : merge Message {}
+message M_Reflect_Attribute_Values : merge Message {}
+message M_Send_Interaction : merge Message {}
+message M_Receive_Interaction : merge Message {}
+message M_Delete_Object_Instance : merge Message {}
+message M_Local_Delete_Object_Instance : merge Message {}
+message M_Remove_Object_Instance : merge Message {}
+message M_Change_Attribute_Transportation_Type : merge Message {}
+message M_Change_Interaction_Transportation_Type : merge Message {}
+message M_Request_Object_Attribute_Value_Update : merge Message {}
+message M_Request_Class_Attribute_Value_Update : merge Message {}
+message M_Provide_Attribute_Value_Update : merge Message {}
+message M_Attributes_In_Scope : merge Message {}
+message M_Attributes_Out_Of_Scope : merge Message {}
+message M_Turn_Updates_On_For_Object_Instance : merge Message {}
+message M_Turn_Updates_Off_For_Object_Instance : merge Message {}
+
+ // Ownership
+message M_Request_Attribute_Ownership_Divestiture : merge Message {}
+message M_Request_Attribute_Ownership_Assumption : merge Message {}
+message M_Negotiated_Attribute_Ownership_Divestiture : merge Message {}
+message M_Attribute_Ownership_Divestiture_Notification : merge Message {}
+message M_Attribute_Ownership_Acquisition_Notification : merge Message {}
+message M_Request_Attribute_Ownership_Acquisition : merge Message {}
+message M_Request_Attribute_Ownership_Release : merge Message {}
+message M_Query_Attribute_Ownership : merge Message {}
+message M_Inform_Attribute_Ownership : merge Message {}
+message M_Is_Attribute_Owned_By_Federate : merge Message {}
+message M_Attribute_Is_Not_Owned : merge Message {}
+message M_Attribute_Owned_By_Rti : merge Message {}
+message M_Attribute_Ownership_Acquisition_If_Available : merge Message {}
+message M_Attribute_Ownership_Unavailable : merge Message {}
+message M_Unconditional_Attribute_Ownership_Divestiture : merge Message {}
+message M_Attribute_Ownership_Acquisition : merge Message {}
+message M_Cancel_Negotiated_Attribute_Ownership_Divestiture : merge Message {}
+message M_Attribute_Ownership_Release_Response : merge Message {}
+message M_Cancel_Attribute_Ownership_Acquisition : merge Message {}
+message M_Confirm_Attribute_Ownership_Acquisition_Cancellation : merge Message
{}
+
+ // Time
+message M_Change_Attribute_Order_Type : merge Message {}
+message M_Change_Interaction_Order_Type : merge Message {}
+message M_Enable_Time_Regulation : merge Message {
required double fedTime
required double lookahead
}
+message M_Disable_Time_Regulation : merge Message {}
+message M_Enable_Time_Constrained : merge Message {}
+message M_Disable_Time_Constrained : merge Message {}
+message M_Query_Lbts : merge Message {}
+message M_Query_Federate_Time : merge Message {}
+message M_Query_Min_Next_Event_Time : merge Message {}
+message M_Modify_Lookahead : merge Message {}
+message M_Query_Lookahead : merge Message {}
+message M_Retract : merge Message {}
+message M_Request_Retraction : merge Message {}
+message M_Time_Advance_Request : merge Message {}
+message M_Time_Advance_Request_Available : merge Message {}
+message M_Next_Event_Request : merge Message {}
+message M_Next_Event_Request_Available : merge Message {}
+message M_Flush_Queue_Request : merge Message {}
+message M_Time_Advance_Grant : merge Message {}
+message M_Enable_Asynchronous_Delivery : merge Message {}
+message M_Disable_Asynchronous_Delivery : merge Message {}
+message M_Time_Regulation_Enabled : merge Message {}
+message M_Time_Constrained_Enabled : merge Message {}
+
+ // Data Distribution Management
+message M_Ddm_Create_Region : merge Message {}
+message M_Ddm_Modify_Region : merge Message {}
+message M_Ddm_Delete_Region : merge Message {}
+message M_Ddm_Register_Object : merge Message {}
+message M_Ddm_Associate_Region : merge Message {}
+message M_Ddm_Unassociate_Region : merge Message {}
+message M_Ddm_Subscribe_Attributes : merge Message {}
+message M_Ddm_Unsubscribe_Attributes : merge Message {}
+message M_Ddm_Subscribe_Interaction : merge Message {}
+message M_Ddm_Unsubscribe_Interaction : merge Message {}
+message M_Ddm_Request_Update : merge Message {}
+
+ // Support Services
+message M_Get_Object_Class_Handle : merge Message {}
+message M_Get_Object_Class_Name : merge Message {}
+message M_Get_Attribute_Handle : merge Message {}
+message M_Get_Attribute_Name : merge Message {}
+message M_Get_Interaction_Class_Handle : merge Message {}
+message M_Get_Interaction_Class_Name : merge Message {}
+message M_Get_Parameter_Handle : merge Message {}
+message M_Get_Parameter_Name : merge Message {}
+message M_Get_Object_Instance_Handle : merge Message {}
+message M_Get_Object_Instance_Name : merge Message {}
+message M_Get_Space_Handle : merge Message {}
+message M_Get_Space_Name : merge Message {}
+message M_Get_Dimension_Handle : merge Message {}
+message M_Get_Dimension_Name : merge Message {}
+message M_Get_Attribute_Space_Handle : merge Message {}
+message M_Get_Object_Class : merge Message {}
+message M_Get_Interaction_Space_Handle : merge Message {}
+message M_Get_Transportation_Handle : merge Message {}
+message M_Get_Transportation_Name : merge Message {}
+message M_Get_Ordering_Handle : merge Message {}
+message M_Get_Ordering_Name : merge Message {}
+message M_Enable_Class_Relevance_Advisory_Switch : merge Message {}
+message M_Disable_Class_Relevance_Advisory_Switch : merge Message {}
+message M_Enable_Attribute_Relevance_Advisory_Switch : merge Message {}
+message M_Disable_Attribute_Relevance_Advisory_Switch : merge Message {}
+message M_Enable_Attribute_Scope_Advisory_Switch : merge Message {}
+message M_Disable_Attribute_Scope_Advisory_Switch : merge Message {}
+message M_Enable_Interaction_Relevance_Advisory_Switch : merge Message {}
+message M_Disable_Interaction_Relevance_Advisory_Switch : merge Message {}
+message M_Tick_Request : merge Message {}
+message M_Tick_Request_Next : merge Message {}
+message M_Tick_Request_Stop : merge Message {}
-message M_Disable_Time_Regulation { }
-
-message M_Enable_Time_Constrained { }
-
-message M_Disable_Time_Constrained { }
+native SocketUN {
+ language CXX [#include "SocketUN.hh"]
+}
native StreamType {
- language CXX [typedef Socket* StreamType;]
+ language CXX [typedef SocketUN* StreamType;]
}
native M_Type {
@@ -72,6 +219,6 @@
factory M_Factory {
- factoryCreator NetworkMessage create(M_Type)
- factoryReceiver NetworkMessage receive(StreamType)
+ factoryCreator Message create(M_Type)
+ factoryReceiver Message receive(StreamType)
}
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi/scripts GenerateMessages.py CERTI_Network...,
certi-cvs <=