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, 27 Feb 2010 16:45:19 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      10/02/27 16:45:19

Modified files:
        scripts        : GenerateMessages.py CERTI_Message.msg 
Added files:
        scripts        : TODO.GenMsg 

Log message:
        Update CERTI Message specifications (RTIA<-->Federate)
        This specification contains all what is needed to 
        get rid of old Message stuff and use generated one.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenerateMessages.py?cvsroot=certi&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CERTI_Message.msg?cvsroot=certi&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/TODO.GenMsg?cvsroot=certi&rev=1.1

Patches:
Index: GenerateMessages.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenerateMessages.py,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- GenerateMessages.py 6 Feb 2010 19:01:03 -0000       1.29
+++ GenerateMessages.py 27 Feb 2010 16:45:19 -0000      1.30
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 ## USA
 ##
-## $Id: GenerateMessages.py,v 1.29 2010/02/06 19:01:03 erk Exp $
+## $Id: GenerateMessages.py,v 1.30 2010/02/27 16:45:19 erk Exp $
 ## ----------------------------------------------------------------------------
 
 """
@@ -1204,7 +1204,6 @@
                     return representation
         return None
 
-
     def getSerializeMethodName(self,name):
         if name in self.serializeTypeMap.keys():
             return self.serializeTypeMap[name]
@@ -1248,14 +1247,18 @@
         if field.typeid.name == "onoff":
             if field.qualifier == "repeated":
                 stream.write(self.getIndent())
-                stream.write("uint32_t getNum"+self.upperFirst(field.name)+"() 
const")
+                stream.write("uint32_t 
get"+self.upperFirst(field.name)+"Size() const")
                 stream.write(" {return "+field.name+".size();}\n")
 
                 stream.write(self.getIndent())
-                stream.write("void 
setNum"+self.upperFirst(field.name)+"(uint32_t num)")
+                stream.write("void 
set"+self.upperFirst(field.name)+"Size(uint32_t num)")
                 stream.write(" {"+field.name+".resize(num);}\n")
 
                 stream.write(self.getIndent())
+                stream.write("const std::vector<"+targetTypeName+">& 
get"+self.upperFirst(field.name)+"() const")
+                stream.write(" {return "+field.name+";}\n")
+
+                stream.write(self.getIndent())
                 stream.write("void "+field.name+"On(uint32_t rank)")
                 stream.write(" {"+field.name+"[rank] = true;}\n")
             
@@ -1281,14 +1284,18 @@
         else:
             if field.qualifier == "repeated":
                 stream.write(self.getIndent())
-                stream.write("uint32_t getNum"+self.upperFirst(field.name)+"() 
const")
+                stream.write("uint32_t 
get"+self.upperFirst(field.name)+"Size() const")
                 stream.write(" {return "+field.name+".size();}\n")
 
                 stream.write(self.getIndent())
-                stream.write("void 
setNum"+self.upperFirst(field.name)+"(uint32_t num)")
+                stream.write("void 
set"+self.upperFirst(field.name)+"Size(uint32_t num)")
                 stream.write(" {"+field.name+".resize(num);}\n")
 
                 stream.write(self.getIndent())
+                stream.write("const std::vector<"+targetTypeName+">& 
get"+self.upperFirst(field.name)+"() const")
+                stream.write(" {return "+field.name+";}\n")
+
+                stream.write(self.getIndent())
                 stream.write("const "+targetTypeName+"& 
get"+self.upperFirst(field.name)+"(uint32_t rank) const")
                 stream.write(" {return "+field.name+"[rank];}\n")  
                 
@@ -1438,6 +1445,9 @@
                     stream.write(self.getIndent()+self.commentLineBeginWith+" 
specific Getter(s)/Setter(s)\n")
                     for field in msg.fields:
                         self.writeOneGetterSetter(stream,field)
+                    # the show method
+                    stream.write(self.getIndent()+self.commentLineBeginWith+" 
the show method\n")
+                    stream.write(self.getIndent()+virtual+"void 
show(std::ostream& out);\n")
                                 
                 self.unIndent()
                 # end public:
@@ -1501,7 +1511,6 @@
             stream.write(field.name+"= <no default value in message spec using 
builtin>\n")
             # FIXME find a default value for every type beside natives
             
-            
     def writeSerializeFieldStatement(self,stream,field):
         indexField = ''
         if field.qualifier == "optional":
@@ -1539,6 +1548,47 @@
             self.unIndent()
             stream.write(self.getIndent()+"}\n")
     
+    def writeShowFieldStatement(self,stream,field):
+        indexField = ''
+        if field.qualifier == "optional":
+            stream.write(self.getIndent())
+            stream.write("out << \"(opt) %s =\" " % field.name)
+        elif field.qualifier == "repeated":
+            indexField = '[i]'
+            stream.write(self.getIndent())
+            stream.write("out << \"    %s [] =\" << std::endl;\n" % field.name 
)
+            stream.write(self.getIndent())
+            stream.write("for (uint32_t i = 0; i < 
get"+self.upperFirst(field.name)+"Size(); ++i) {\n")            
+            self.indent()
+            stream.write(self.getIndent()+"out ")
+        else:
+            stream.write(self.getIndent())
+            stream.write("out << \" %s = \" " % field.name)
+                   
+        methodName = self.getSerializeMethodName(field.typeid.name)
+        if None == methodName:
+            if field.typeid.name in [m.name for m in self.AST.messages]:
+                stream.write("<< \"FIXME inherited \";\n ")
+                stream.write(self.commentLineBeginWith+" FIXME FIXME FIXME 
inherited message\n")                
+            else:
+                stream.write("<< \"")
+                stream.write(self.getIndent()+self.commentLineBeginWith+"FIXME 
FIXME don't know how to serialize native field <%s> of type 
<%s>"%(field.name,field.typeid.name))
+                stream.write("\"")
+                                            
+        else:            
+            stream.write("<< %s << \" \" " % (field.name+indexField))
+        
+        if field.qualifier == "optional":            
+            stream.write(self.getIndent()+"<< std::endl;\n")
+        elif field.qualifier == "repeated":
+            stream.write(";\n")
+            self.unIndent()
+            stream.write(self.getIndent()+"}\n")
+            stream.write(self.getIndent()+"out << std::endl;\n")
+        else:
+            stream.write(self.getIndent()+"<< std::endl;\n")
+                        
+    
     def writeDeSerializeFieldStatement(self,stream,field):
         indexField = ''
         if field.qualifier == "optional":
@@ -1590,7 +1640,8 @@
         stream.write(self.getIndent() + "switch (type) {\n")
         self.indent()
         for e in self.AST.eMessageType.values:            
-            stream.write(self.getIndent()+"case %s::%s:\n" % 
(creator[0],e.name))
+            #stream.write(self.getIndent()+"case %s::%s:\n" % 
(creator[0],e.name))
+            stream.write(self.getIndent()+"case %s::%s:\n" % 
(creator[0],e.name.replace("M_","",1)))
             self.indent()
             if None==e.type:
                 stream.write(self.getIndent()+"throw RTIinternalError(\"%s 
message type should not be used!!\");\n"%e.name)
@@ -1650,8 +1701,9 @@
                 stream.write(self.getIndent()+"%s::%s() {\n" % 
(msg.name,msg.name))            
                 self.indent()
                 # Assign my name.
-                stream.write(self.getIndent()+"this->name = 
\""+msg.name+"\";\n")
-                stream.write(self.getIndent()+"this->type = 
"+msg.name.upper().replace("NM_","NetworkMessage::")+";\n")
+                stream.write(self.getIndent()+"this->messageName = 
\""+msg.name+"\";\n")
+                #stream.write(self.getIndent()+"this->type = 
"+msg.name.upper().replace("NM_","NetworkMessage::")+";\n")
+                stream.write(self.getIndent()+"this->type = 
"+msg.name.upper().replace("M_","Message::",1)+";\n")
                 # Write init value if any was provided
                 if len(msg.fields)>0:
                     for field in msg.fields:
@@ -1696,6 +1748,22 @@
                     self.unIndent()
                     stream.write(self.getIndent()+"}\n\n")
                     # end deserialize method
+                    # begin show method
+                    stream.write(self.getIndent()+"void %s::show(std::ostream& 
out) {\n" % msg.name)
+                    self.indent()
+                    stream.write(self.getIndent()+"out << \"[%s -Begin]\" << 
std::endl;" % msg.name)
+                    if msg.hasMerge():
+                        
stream.write(self.getIndent()+self.commentLineBeginWith)
+                        stream.write("Call mother class\n")
+                        stream.write(self.getIndent()+"Super::show(out);\n")
+                    stream.write(self.getIndent()+self.commentLineBeginWith)
+                    stream.write("Specific show code\n")
+                    for field in msg.fields:
+                        self.writeShowFieldStatement(stream,field)
+                    stream.write(self.getIndent()+"out << \"[%s -End]\" << 
std::endl;" % msg.name)
+                    self.unIndent()
+                    stream.write(self.getIndent()+"}\n\n")
+                    # end show method
                     
         # Generate Factory (if any)
         # @todo
@@ -1980,7 +2048,13 @@
 parser.logger = parserlogger 
     
 mainlogger.info("Parsing message file specifications...")    
-msgFile =  open(inputFile,'r')
+try:    
+    msgFile =  open(inputFile,'r')
+except IOError, e:        
+    mainlogger.error("IOError raised: <"+str(e)+">")
+    mainlogger.error("May be input file <%s> is unreadable or mispelled?" % 
inputFile)
+    sys.exit()
+    
 lexer.lineno = 1
 parser.AST = MessageAST(inputFile)
 parser.parse(msgFile.read(),lexer=lexer)
@@ -2018,13 +2092,4 @@
     generator.generate(output,gentype,factoryOnly) 
 mainlogger.info("Generate %s from AST, Done." % language)
 
-sys.exit()
-for l in msgFile:
-    cname = l.strip('_ \n')        
-
-    if (gentype.lower()=="factory"):
-        print "case NetworkMessage::%s:" % cname
-        print "   msg = new NM_%s(); " %cname.title()
-        print "   break;"
-
 msgFile.close()

Index: CERTI_Message.msg
===================================================================
RCS file: /sources/certi/certi/scripts/CERTI_Message.msg,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- CERTI_Message.msg   6 Feb 2010 19:01:04 -0000       1.9
+++ CERTI_Message.msg   27 Feb 2010 16:45:19 -0000      1.10
@@ -88,6 +88,7 @@
 native AttributeHandle {
     representation uint32
     language CXX [#include "certi.hh"]
+    language CXX [#define ATTRIBUTE_HANDLE_UNDEFINED_VALUE 0]
 }
 
 native DimensionHandle {
@@ -135,6 +136,21 @@
     language CXX [#include "certi.hh"]
 }
 
+native AttributeValue_t {
+       representation string
+       language CXX [#include "certi.hh"]
+}
+
+native ParameterValue_t {
+       representation string
+       language CXX [#include "certi.hh"]
+}
+
+native EventRetractionHandle {    
+    language CXX [#include "RTItypes.hh"]      
+    language CXX [typedef RTI::EventRetractionHandle EventRetractionHandle;]   
+}
+
 // Closing connexion message
 message M_Close_Connexion : merge Message {
 }
@@ -174,7 +190,11 @@
 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_Failed : merge Message {
+     required string reason
+}
+
 message M_Request_Federation_Restore_Succeeded : merge Message {}
 
 message M_Initiate_Federate_Restore : merge Message {
@@ -189,7 +209,7 @@
 // Declaration
 message M_Publish_Object_Class : merge Message {
        required ObjectClassHandle objectClass
-        repeated Handle handles
+    repeated AttributeHandle   attributes
 }
 
 message M_Unpublish_Object_Class : merge Message {
@@ -206,7 +226,8 @@
 
 message M_Subscribe_Object_Class_Attributes : merge Message {
        required ObjectClassHandle objectClass
-        repeated Handle handles
+    repeated AttributeHandle   attributes
+    required bool              active {default=true}
 }
 
 message M_Unsubscribe_Object_Class : merge Message {
@@ -241,99 +262,118 @@
 message M_Register_Object_Instance : merge Message {
        required ObjectClassHandle objectClass
         required ObjectHandle      object
-        required string            objectName
+    optional string            objectName
 }
 
 message M_Update_Attribute_Values : merge Message {
         required ObjectClassHandle  objectClass
        required ObjectHandle       object
-        repeated Handle             handle
-        repeated string             attributeValues // FIXME check this one
-        required ResignAction       resignAction
+        repeated AttributeHandle    attributes
+        repeated AttributeValue_t   values // FIXME check this one
+        optional EventRetractionHandle eventRetraction
 }
 
 message M_Discover_Object_Instance : merge Message {
        required ObjectClassHandle objectClass
         required ObjectHandle      object
         required string            objectName
-        required ResignAction      resignAction
+        optional EventRetractionHandle eventRetraction
 }
 
 message M_Reflect_Attribute_Values : merge Message {
        required ObjectClassHandle  objectClass
        required ObjectHandle       object
-        repeated Handle             handle
-        repeated string             attributeValues // FIXME check this one
-        required ResignAction       resignAction
+        repeated AttributeHandle    attributes
+        repeated AttributeValue_t   values // FIXME check this one
+        optional EventRetractionHandle eventRetraction
 }
 
 message M_Send_Interaction : merge Message {
        required InteractionClassHandle interactionClass
-        repeated Handle                 handles
-       repeated string                 values
+    repeated ParameterHandle        parameters
+       repeated ParameterValue_t       values
        required RegionHandle           region
-       required ResignAction           resignAction          
+       optional EventRetractionHandle eventRetraction          
 }
 
 message M_Receive_Interaction : merge Message {
        required InteractionClassHandle interactionClass
-        repeated Handle                 handles
-       repeated string                 values
+    repeated ParameterHandle        parameters
+       repeated ParameterValue_t       values
        required RegionHandle           region
-       required ResignAction           resignAction
+       optional EventRetractionHandle eventRetraction
 }
 
 message M_Delete_Object_Instance : merge Message {
        required ObjectClassHandle objectClass
         required ObjectHandle      object
         required string            objectName
-        required ResignAction      resignAction
+        optional EventRetractionHandle eventRetraction
 }
 
-message M_Local_Delete_Object_Instance : merge Message {}
+message M_Local_Delete_Object_Instance : merge Message {
+           required ObjectHandle      object
+}
 
 message M_Remove_Object_Instance : merge Message {
        required ObjectClassHandle objectClass
         required ObjectHandle      object
         required string            objectName
-        required ResignAction      resignAction
+        optional EventRetractionHandle eventRetraction
 }
 
 message M_Change_Attribute_Transportation_Type : merge Message {
-        required TransportType transport
-        required OrderType     order
+        required TransportType   transportationType
+        required OrderType       orderType
         required ObjectHandle  object
-       repeated Handle        handles
+           repeated AttributeHandle attributes
 }
 
 message M_Change_Interaction_Transportation_Type : merge Message {
        required InteractionClassHandle interactionClass
-        required TransportType          transport
-        required OrderType              order
+        required TransportType          transportationType
+        required OrderType              orderType
 }
 
 message M_Request_Object_Attribute_Value_Update : merge Message {
        required ObjectHandle object
-        repeated Handle       handles
+    repeated AttributeHandle    attributes
 }
 
 message M_Request_Class_Attribute_Value_Update : merge Message {
        required ObjectClassHandle objectClass
-        repeated Handle            handles
+    repeated AttributeHandle   attributes
 }
 
 message M_Provide_Attribute_Value_Update : merge Message {
        required ObjectHandle object
-        repeated Handle       handles  
+    repeated AttributeHandle   attributes      
+}
+
+message M_Attributes_In_Scope : merge Message {
+   required ObjectHandle object
+   repeated AttributeHandle attributes
+}
+
+message M_Attributes_Out_Of_Scope : merge Message {
+   required ObjectHandle object
+   repeated AttributeHandle attributes
+}
+
+message M_Turn_Updates_On_For_Object_Instance : merge Message {
+   required ObjectHandle object
+   repeated AttributeHandle attributes
 }
 
-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 {}
+message M_Turn_Updates_Off_For_Object_Instance : merge Message {
+   required ObjectHandle object
+   repeated AttributeHandle attributes
+}
 
 // Ownership management
-message M_Request_Attribute_Ownership_Divestiture : merge Message {}
+message M_Request_Attribute_Ownership_Divestiture : merge Message {
+}
+
 message M_Request_Attribute_Ownership_Assumption : merge Message {
        required ObjectHandle object
        repeated AttributeHandle attributes
@@ -344,8 +384,16 @@
        repeated AttributeHandle attributes
 }
 
-message M_Attribute_Ownership_Divestiture_Notification : merge Message {}
-message M_Attribute_Ownership_Acquisition_Notification : merge Message {}
+message M_Attribute_Ownership_Divestiture_Notification : merge Message {
+    required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
+message M_Attribute_Ownership_Acquisition_Notification : merge Message {
+    required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
 message M_Request_Attribute_Ownership_Acquisition : merge Message {
        required ObjectHandle object
        repeated AttributeHandle attributes
@@ -378,24 +426,53 @@
 }
 
 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_Attribute_Ownership_Acquisition_If_Available : merge Message {
+    required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
+message M_Attribute_Ownership_Unavailable : merge Message {
+    required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
+message M_Unconditional_Attribute_Ownership_Divestiture : merge Message {
+       required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
+message M_Attribute_Ownership_Acquisition : merge Message {
+       required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
 message M_Cancel_Negotiated_Attribute_Ownership_Divestiture : merge Message {
        required ObjectHandle object
        repeated AttributeHandle attributes
 }
-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 
{}
+
+message M_Attribute_Ownership_Release_Response : merge Message {
+       required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
+message M_Cancel_Attribute_Ownership_Acquisition : merge Message {
+       required ObjectHandle object
+       repeated AttributeHandle attributes
+}
+
+message M_Confirm_Attribute_Ownership_Acquisition_Cancellation : merge Message 
{
+    required ObjectHandle object
+       repeated AttributeHandle attributes
+}
 
         // Time
 message M_Change_Attribute_Order_Type : merge Message {
         required TransportType transport
         required OrderType     order
         required ObjectHandle  object
-       repeated Handle        handles
+           repeated AttributeHandle    attributes
 }
 
 message M_Change_Interaction_Order_Type : merge Message {
@@ -405,23 +482,21 @@
 }
 
 message M_Enable_Time_Regulation : merge Message {
-    required onoff  enable
-    required double lookahead
+    required onoff  enable {default=true}
+    required double lookahead {default=0}
 }
 
 message M_Disable_Time_Regulation : merge Message {
-    required onoff  enable
-    required double lookahead
+    required onoff  enable {default=false}
+    required double lookahead {default=0}
 }
 
 message M_Enable_Time_Constrained : merge Message {
-    required onoff  enable
-    required double lookahead
+    required onoff  enable {default=true}
 }
 
 message M_Disable_Time_Constrained : merge Message {
-    required onoff  enable
-    required double lookahead
+    required onoff  enable {default=false}
 }
 
 message M_Query_Lbts : merge Message {}
@@ -436,7 +511,10 @@
        required double lookahead
 }
 
-message M_Retract : merge Message {}
+message M_Retract : merge Message {
+       required EventRetractionHandle eventRetraction
+}
+
 message M_Request_Retraction : merge Message {}
 message M_Time_Advance_Request : merge Message {}
 message M_Time_Advance_Request_Available : merge Message {}
@@ -449,16 +527,20 @@
 message M_Time_Regulation_Enabled : merge Message {}
 message M_Time_Constrained_Enabled : merge Message {}
 
+native Extent {
+   language CXX [#include "Extent.hh"]      
+}
+
 // Data Distribution Management
 message M_Ddm_Create_Region : merge Message {
-       required SpaceHandle  space
-        required uint32       nbExtent
-        required RegionHandle region
+       required SpaceHandle  space      // the routing space designator
+       repeated Extent       extentSet  // the extent set    
+    required RegionHandle region     // the region handle obtained upon 
successful creation
 }
 
 message M_Ddm_Modify_Region : merge Message {
        required RegionHandle region
-       //repeated M_Extents extent    readExtents(msgBuffer);
+       repeated Extent       extentSet  // the extent set
 }
 
 message M_Ddm_Delete_Region : merge Message {
@@ -468,13 +550,15 @@
 message M_Ddm_Register_Object : merge Message {
        required ObjectClassHandle objectClass
        required ObjectHandle      object
-       repeated AttributeHandle   handles
-       // repeated M_Regions   regions 
+       optional string            objectInstanceName
+       repeated AttributeHandle   attributes
+       // repeated RegionHandle      regions 
 }
 
 message M_Ddm_Associate_Region : merge Message {
        required ObjectHandle object
        required RegionHandle region    
+       repeated AttributeHandle   attributes
 }
 
 message M_Ddm_Unassociate_Region : merge Message {
@@ -486,7 +570,7 @@
        required ObjectClassHandle objectClass
        required RegionHandle      region
        required onoff             passive
-       repeated AttributeHandle   handles
+       repeated AttributeHandle   attributes
 }
 
 message M_Ddm_Unsubscribe_Attributes : merge Message {
@@ -506,85 +590,85 @@
        required onoff                  passive
 }
 
-message M_Ddm_Request_Update : merge Message {}
+message M_Ddm_Request_Update : merge Message {
+   required ObjectClassHandle objectClass
+   required RegionHandle      region
+   repeated AttributeHandle   attributes
+}
 
-        // Support Services
+// Support Services
 message M_Get_Object_Class_Handle : merge Message {
        required ObjectClassHandle objectClass
-        required string            name
-        required AttributeHandle   attribute
+    required string            className    
 }
 
 message M_Get_Object_Class_Name : merge Message {
        required ObjectClassHandle objectClass
-        required string            name
-        required AttributeHandle   attribute
+    required string            className    
 }
 
 message M_Get_Attribute_Handle : merge Message {
        required ObjectClassHandle objectClass
-        required string            name
-        required AttributeHandle   attribute
+    required string            attributeName
+    required AttributeHandle   attribute {default=0}
 }
 
 message M_Get_Attribute_Name : merge Message {
        required ObjectClassHandle objectClass
-        required string            name
-        required AttributeHandle   attribute
+    required string            attributeName
+    required AttributeHandle   attribute {default=0}
 }
 
 message M_Get_Interaction_Class_Handle : merge Message {
-       required InteractionClassHandle interactionClass
-        required string                 name
-        required ParameterHandle        parameter
+       required InteractionClassHandle interactionClass {default=0}
+    required string                 className
 }
 
 message M_Get_Interaction_Class_Name : merge Message {
        required InteractionClassHandle interactionClass
-        required string                 name
-        required ParameterHandle        parameter      
+       required string                 className       
 }
 
 message M_Get_Parameter_Handle : merge Message {
        required InteractionClassHandle interactionClass
-        required string                 name
-        required ParameterHandle        parameter
+    required string                 parameterName
+    required ParameterHandle        parameter {default=0}
 }
 
 message M_Get_Parameter_Name : merge Message {
        required InteractionClassHandle interactionClass
-        required string                 name
-        required ParameterHandle        parameter
+    required string                 parameterName
+    required ParameterHandle        parameter {default=0}
 }
 
 message M_Get_Object_Instance_Handle : merge Message {
-       required ObjectHandle object
-       required string       name
+       required ObjectHandle object {default=0}
+       required string       objectInstanceName
 }
 
 message M_Get_Object_Instance_Name : merge Message {
        required ObjectHandle object
-       required string       name
+       required string       objectInstanceName
 }
 
 message M_Get_Space_Handle : merge Message {
-       required string      name
-        required SpaceHandle space
+       required string      spaceName
+    required SpaceHandle space {default=0}
 }
 
 message M_Get_Space_Name : merge Message {
-       required string      name
+       required string      spaceName
         required SpaceHandle space
 }
 
 message M_Get_Dimension_Handle : merge Message {
-       required string          name
+       required string          dimensionName
         required SpaceHandle     space
-       required DimensionHandle dimension
+       required DimensionHandle dimension {default=0}
 }
 
 message M_Get_Dimension_Name : merge Message {
-       required string          name
+       required string          dimensionName
         required SpaceHandle     space
        required DimensionHandle dimension
 }
@@ -592,7 +676,7 @@
 message M_Get_Attribute_Space_Handle : merge Message {
        required ObjectClassHandle objectClass
         required AttributeHandle   attribute
-        required SpaceHandle       space
+    required SpaceHandle       space {default=0}
 }
 
 message M_Get_Object_Class : merge Message {
@@ -602,27 +686,27 @@
 
 message M_Get_Interaction_Space_Handle : merge Message {
        required InteractionClassHandle interactionClass
-        required SpaceHandle            space
+    required SpaceHandle            space {default=0}
 }
 
 message M_Get_Transportation_Handle : merge Message {
-       required string         name
-        required TransportType  transport
+       required string         transportationName
+    required TransportType  transportation {default=0}
 }
 
 message M_Get_Transportation_Name : merge Message {
-       required string         name
-        required TransportType  transport
+       required string         transportationName
+    required TransportType  transportation
 }
 
 message M_Get_Ordering_Handle : merge Message {
-       required string     name
-        required OrderType  order
+       required string     orderingName
+    required OrderType  ordering {default=0}
 }
 
 message M_Get_Ordering_Name : merge Message {
-       required string     name
-        required OrderType  order
+       required string     orderingName
+    required OrderType  ordering
 }
 message M_Enable_Class_Relevance_Advisory_Switch : merge Message {}
 message M_Disable_Class_Relevance_Advisory_Switch : merge Message {}
@@ -655,7 +739,6 @@
 }
 
 factory M_Factory {
-
        factoryCreator  Message create(M_Type)
        factoryReceiver Message receive(StreamType)
 }

Index: TODO.GenMsg
===================================================================
RCS file: TODO.GenMsg
diff -N TODO.GenMsg
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ TODO.GenMsg 27 Feb 2010 16:45:19 -0000      1.1
@@ -0,0 +1,23 @@
+TODO list for the CERTI Message generator:
+
+0) Write the documentation (and may be BNF) for  
+   the CERTI Message specification language
+
+1) Modularize generator such that 
+   each backend generator (C++, Java, Python etc...) may be loaded separately
+
+2) Support variant for sequences
+
+3) Explain the on-the-wire encoding scheme (i.e. MessageBuffer)
+
+4) Add a display method for each message (C++ generator)
+   or an helper method which may authorize
+   cout << msg;
+
+5) Parser --> improve syntax error reporting 
+
+6) Enhance C++ generator (or write another one) for which
+   runtime check is done for setting 'required' field before sending
+   (or default value exists)
+
+7) Handle natively defined default values for members




reply via email to

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