Re: Application IDL

Jayakumar Muthukumarasamy ([email protected])
Fri, 6 Jan 1995 16:59:25 -0500 (EST)

Pedro,

I have a fundamental question here. Why do we need this meta-model.
Won't the IDL description itself be a model. i.e. why does the user have
to specify the IDL for an application using this meta-model instead of
using IDL itself? What advantages do we gain from such a specification
that we would loose if we use IDL.

-jk

>
> JK,
>
> I looked at the phone IDL and translated it into the ascii syntax. The IDL
> looks good. I think we need to quible about names, and next week we need to
> integrate all the IDLs, or at least discuss how to do it.
>
> In the syntax I assumed that the name of each object served as a tag as long
> as it is unique. When more than one object inside a top level form has the
> same name, then it is necessary to use a tag.
>
> Comments?
>
>
> // Translation of JK phone.idl to Mastermind MTF syntax.
> //
> // Pedro Szekely, 1/6/95
> //
>
> {module
> name pbx
> {interface
> name phone
> exceptions
> {exception
> name invalid_number
> fields
> {field
> name number
> type string
> }
> }
> {exception
> name error
> fields
> {field
> name number
> type string
> }
> {field
> name message_string
> type string
> }
> }
> {exception
> name busy
> fields
> {field
> name number
> type string
> }
> {field
> name caller_id
> type string
> }
> }
> {exception
> name call_in_progress
> fields
> {field
> name number
> type string
> }
> {field
> name caller_id
> type string
> }
> {field
> name outgoing
> type boolean
> }
> }
> {exception
> name call_connected
> fields
> {field
> name number
> type string
> }
> {field
> name caller_id
> type string
> }
> }
> {exception
> name incoming_call
> fields
> {field
> name number
> type string
> }
> {field
> name caller_id
> type string
> }
> }
> {exception
> name call_forwarded
> fields
> {field
> name from_number
> type string
> }
> {field
> name from_caller_id
> type string
> }
> {field
> name to_number
> type string
> }
> {field
> name to_caller_id
> type string
> }
> }
> enumerations
> {enumeration
> name line_mode
> enum_ids "local" "long_distance" "internal"
> }
> {enumeration
> name line_status
> enum_ids "free" "to_be_used" "dialing" "in_use"
> }
> structures
> {structure
> name line_attributes
> fields
> {field
> name mode
> type @line_mode
> }
> {field
> name status
> type @line_status
> }
> }
> attributes
> {attribute
> name line
> type @line_attributes
> }
> methods
> {method
> name ok_to_switch
> type boolean
> parameters
> {parameter
> name switch_to
> mode mode_in
> type @line_mode
> }
> }
> {method
> name switch_to
> type boolean
> parameters
> {parameter
> name switch_to
> mode mode_in
> type @line_mode
> }
> exceptions @error
> }
> {method
> name dial_digit
> type boolean
> parameters
> {parameter
> name digit
> mode mode_in
> type string
> }
> exceptions @invalid_number @call_in_progress @error @busy
> }
> {method
> name get_status
> type boolean
> exceptions @invalid_number @busy @call_in_progress @error
> @call_connected @incoming_call
> }
> {method
> name lift_handset
> type boolean
> exceptions @call_connected
> }
> {method
> name hangup
> type boolean
> exceptions @call_connected @call_forwarded
> }
> }
>
>