The default behavior of a SeD when a service request arrives from its parent agent is to store the following information in the request profile:
To implement a plugin scheduler, we define an interface that admits customizable performance estimation routines:
typedef void (* diet_perfmetric_t)( diet_profile_t*,
diet_perfmetric_tThus, the type diet_perfmetric_t is a function pointer that takes as arguments a performance estimation (represented by the estVector_t object) and a DIET service request profile. The application developer can associate such a function, or performance estimation routine, with DIET services via the diet_service_use_perfmetric interface. This interface returns the previously registered performance estimation routine, if one was defined (and NULL otherwise). At this point, a service added using the diet_service_table_add function will be associated with the declared performance estimation routine. Additionally, a performance estimation routine so specified will be associated with all services added into the service table until another call to the diet_service_use_perfmetric interface is made. In the performance estimation routine, the SeD developer should store in the provided estimation vector any performance data used in the server response aggregation methods (described in the next section).