fprintf(b,"\t\tValue.OUTPORT_%s_DATA.Length := PolyORB_HI_Generated.Types.uint16 (IN_%s_size);\n",// old V1
i->name,tmp->value->name);
else
fprintf(b,"\t\tValue.OUTPORT_%s_DATA.Length := PolyORB_HI_Generated.Types.Unsigned_16 (IN_%s_size);\n",// AADL V2, should work with V1 but not supported by Ocarina yet also, otherwise put back previous line for V1
i->name,tmp->value->name);
tmp=tmp->next;
}
"\t\tErr: PolyORB_HI.Errors.Error_Kind;\n\t\tuse type PolyORB_HI.Errors.Error_Kind;\n");
fprintf(b,"\t\tValue.OUTPORT_%s_DATA.Length := PolyORB_HI_Generated.Types.uint16 (IN_%s_size);\n",// old V1
i->name,tmp->value->name);
else
fprintf(b,"\t\tValue.OUTPORT_%s_DATA.Length := PolyORB_HI_Generated.Types.Unsigned_16 (IN_%s_size);\n",// AADL V2, should work with V1 but not supported by Ocarina yet also, otherwise put back previous line for V1
i->name,tmp->value->name);
tmp=tmp->next;
}
}
if(NULL!=i->parent_fv->process){
fprintf(b,"\t\tPut_Value (%s_%s_K, Value);\n",
i->parent_fv->process->identifier,
i->parent_fv->name);
/* Following is added only for the Backdoor backend : call the Send_Output to
flush immediately the output buffer */
fprintf(b,"\t\tErr:=Send_Output(%s_%s_K, %s%s%s_%s_others_Port_Type'(OUTPORT_%s));\n",i->parent_fv->process->identifier,i->parent_fv->name,(get_context()->aadlv2)?i->parent_fv->name:"",// AADL v2 only
(get_context()->aadlv2)?"_CV_Thread_":"",// AADL v2 only
i->parent_fv->name,// fv->name should be replaced by the namespace (not supported 15/07/2009) (used to be aplc)
i->parent_fv->name,i->name);
}
}
else{// Current FV = Passive function
fprintf(b,"\tbegin\n");
fprintf(b,
"\t\t -- This function is passive, thus not have direct access to the VM\n");
fprintf(b,
"\t\t -- It must use its calling thread to invoke this asynchronous RI\n\n");
/* Build the list of calling threads for this RI */
/* Following is added only for the Backdoor backend : call the Send_Output to
flush immediately the output buffer */
fprintf(b,"\t\tErr:=Send_Output(%s_%s_K, %s%s%s_%s_others_Port_Type'(OUTPORT_%s));\n",i->parent_fv->process->identifier,i->parent_fv->name,(get_context()->aadlv2)?i->parent_fv->name:"",// AADL v2 only
(get_context()->aadlv2)?"_CV_Thread_":"",// AADL v2 only
i->parent_fv->name,// fv->name should be replaced by the namespace (not supported 15/07/2009) (used to be aplc)