Commit 109b024c authored by petre's avatar petre
Browse files

updated type system

parent be6b6a57
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -212,7 +212,10 @@ module LibMsrp_Templates {
            scheme := { 
                scheme := e_SCHEME 
            }, 
            authority := "biloxi.example.com:12763", 
            authority := {
                host := "biloxi.example.com",
                portNumber := 12763
            }, 
            sessionID := "kjhd37s2s20w2a", 
            transport := "tcp", 
            uriParams := omit 
@@ -227,7 +230,10 @@ module LibMsrp_Templates {
            scheme := { 
                scheme := e_SCHEME 
            }, 
            authority := "atlanta.example.com:7654", 
            authority := {
                host := "atlanta.example.com",
            	portNumber := 7654
            }, 
            sessionID := "jshA7weztas", 
            transport := "tcp", 
            uriParams := omit 
@@ -335,8 +341,8 @@ module LibMsrp_Templates {
            contentType := { 
                headerName := CONTENT_TYPE_E, 
                mediaType := { 
                    mediaType := char2oct("text"), 
                    subType := char2oct("plain"), 
                    mediaType := "text", 
                    subType := "plain", 
                    genParams := omit 
                } // End of 'mediaType' field
            }, // End of 'contentType' field
@@ -367,8 +373,8 @@ module LibMsrp_Templates {
        ) modifies mw_contentType_any := { 
            headerName := CONTENT_TYPE_E, 
            mediaType := { 
                mediaType := char2oct(p_mediaType), 
                subType := char2oct(p_subType), 
                mediaType := p_mediaType, 
                subType := p_subType, 
                genParams := * 
            } // End of 'mediaType' field
        } // End of template mw_contentType
+30 −18
Original line number Diff line number Diff line
@@ -168,31 +168,38 @@ module LibMsrp_TypesAndValues {
        group RFC4976HeaderTypes {
            
            type record MsrpExpires {
                HeaderName headerName (STATUS_E)
                HeaderName headerName (STATUS_E),
                integer intValue
        	}
        	
        	type record MsrpMinExpires {
                HeaderName headerName (MIN_EXPIRES_E)
                HeaderName headerName (MIN_EXPIRES_E), 
                integer intValue 
            }
        	
        	type record MaxExpires {
                HeaderName headerName (MAX_EXPIRES_E)
                HeaderName headerName (MAX_EXPIRES_E),
                integer intValue
            }
        	
        	type record UsePath {
                HeaderName headerName (USE_PATH_E)
                HeaderName headerName (USE_PATH_E),
                MsrpURIs msrpURIs
            }
        	
        	type record MsrpWWWAuthenticate {
                HeaderName headerName (WWW_AUTHENTICATE_E)
                //TODO
            }
        	
        	type record MsrpAuthorization {
                HeaderName headerName (AUTHORIZATION_E)
                //TODO
            }
        	
        	type record MsrpAuthenticationInfo {
                HeaderName headerName (AUTHENTICATION_INFO_E)
                //TODO
            }
        }

@@ -261,7 +268,7 @@ module LibMsrp_TypesAndValues {
         * @desc Description of a Token structure
         * @see RFC 4975 - Clause 9. Formal Syntax
         */
        type octetstring Token;        
        type charstring Token;	//token is compared case-insensitive 				      
        
        /**
         * @desc Description of a Namespace structure
@@ -313,9 +320,13 @@ module LibMsrp_TypesAndValues {
         * @desc identifies a participant in a particular MSRP session
         * @see RFC 4975 - Clause 6. MSRP URIs
         * @see RFC 4975 - Clause 9. Formal Syntax
         * @see RFC 3986
         * @see RFC 3986 - Clause 3.2.  Authority
         */
        type charstring Authority;
        type record Authority {	// authority   = [ userinfo "@" ] host [ ":" port ]
        	charstring userinfo optional,
        	charstring host, // if host is IPv6 the "[" and "]" should be removed when decoding and added when encoding	
        	integer portNumber optional
        }
        
        /**
         * @desc Identifies a particular session of the participant
@@ -372,31 +383,32 @@ module LibMsrp_TypesAndValues {
        group msrpMimeTypes { // TODO To be refined
            
            /**
             * @see RFC 2045 
             * @see RFC 2045 - Clause 7. Content-ID Header Field
             */
            type record ContentID {
                HeaderName headerName (CONTENT_ID_E)
                //TODO: add value
                HeaderName headerName (CONTENT_ID_E),
                charstring msgId
            }
            
            /**
             * @see RFC 2045 
             * @see RFC 2045 - Clause 8. Content-Description Header Field
             */
            type record ContentDescription {
                HeaderName headerName (CONTENT_DESCRIPTION_E)
                //TODO: add value
                HeaderName headerName (CONTENT_DESCRIPTION_E),
                charstring text 
            }
            
            /**
             * @see RFC 2183 
             * @see RFC 2183 - Clause 2. The Content-Disposition Header Field
             */
            type record MsrpContentDisposition {
                HeaderName headerName (CONTENT_DISPOSITION_E)
                //TODO: add value
                HeaderName headerName (CONTENT_DISPOSITION_E),
                charstring dispositionType,
                GenParams dispositionParams optional
            }
            
            /**
             * @see RFC 2045 
             * @see RFC 2045 - Clause 9. Additional MIME Header Fields
             */
            type record MimeExtensionField {
                HeaderName headerName (MIME_EXT_FIELD_E),
@@ -427,7 +439,7 @@ module LibMsrp_TypesAndValues {
         */
        type record GenParam {
            Token pname,
            octetstring pval optional // TODO To be refined
            charstring pval optional // TODO To be refined
        } // End of type GenParam
        
        /**