Previous Next

IDL files

The IDL files are generated by the modelling tools. To understand this example better, it'll give an overview of which IDL files are generated.

Common IDL files

Below a simplied represenation of the common IDL files. Use the links to view the file itself. The following IDL files can be found in Hello_asm/ports:

Also this IDL contains the interface between Sender and Receiver

interface MyFoo_obj
{
  long foo (in string in_str, out string answer)
    raises (InternalError);
  void hello (out long answer)
    raises (InternalError);
  attribute short rw_attrib
    getraises (InternalError)
    setraises (InternalError);
  readonly attribute short ro_attrib
    raises (InternalError);
};

Component IDL files:

Sender component IDL file

The Hello_Sender_comp.idl file in the Sender_comp/src directory defines the asynchronous and synchronous connections.
For synchronous invocations, the Sender component uses the MyFoo_obj interface (which the Receiver provides):

component Sender
{
  // For synchronous invocation
  uses MyFoo run_my_foo;
};

For asynchronous invocations, the Sender component uses the AMI_MyFoo_obj interface of the AMI component and provides the AMI_MyFoo_objReplyHandler interface to the AMI component.
This is indicated with the following pragma:

#pragma ciao ami4ccm receptacle "Hello::Sender_comp::run_my_foo"

Receiver component IDL file

The Hello_Receiver_comp.idl file in the Receiver_comp/src directory indicates the port the receiver provide.

component Receiver
{
  //Provides
  provides MyFoo_obj do_my_foo;
};


The receiver isn't aware of the calls that were invoked by the sender were asynchronous or synchronous.

Previous Next