Un objet de classe Job possede une structure generique potentiellement utilisable par tout gestionnaire de batch mais pas en l'etat. Une conversion dans un format lisible par le gestionnaire doit etre realisee.
Ceci se fait en produisant a partir des donnees generiques de la classe Job des structures de donnees specifiques qui peuvent etre directement passees a l'API du gestionnaire.
La classe Job_PBS se distingue donc de la classe Job par son constructeur et par des accesseurs specifiques qui produisent des donnees lisibles par OpenPBS.
Etant donnee la specificite de cette classe, elle ne devrait concerner que les developpeurs de la bibliotheque de classes Batch.
class Job_PBS { public: // Constructeurs et destructeur Job_PBS(const Job & job); virtual ~Job_PBS(); // Accesseurs struct attropl * getAttributesOP(); struct attrl * getAttributes(); char * getScript(); char * getDestination(); protected: struct attropl * _p_attropl; // liste d'attributs + operateur struct attrl * _p_attrl; // liste d'attributs char * _script; // chemin d'acces au script du job char * _destination; // queue dans laquelle le job est soumis private: };
... Parametre param; Environnement env; ... (ici on cree les parametres du job) Job job(param, env); // On fabrique un job specifique a OpenPBS a partir du job generique // Ceci ne concerne en general pas l'utilisateur de la bibliotheque Job_PBS jobpbs(job); ...
Le constructeur convertit les objets internes Parametre et Environnement de l'objet passe en argument en un ensemble de quatre structures C AttributesOP, Attributes, Script et Destination directement utilisable par l'API de OpenPBS.
Le destructeur libere simplement les espaces alloues pour les structures AttributesOP, Attributes, Script et Destination.
Cet accesseur retourne un pointeur sur la structure interne AttributesOP de l'objet. Cette structure n'est pas protogee contre les modifications accidentelles de l'utilisateur. Par consequent il est recommande d'eviter d'y apporter toute alteration sous peine de dysfonctionnement.
Pour la definition de la structure AttributesOP, voir la documentation OpenPBS.
Cet accesseur retourne un pointeur sur la structure interne Attributes de l'objet. Cette structure n'est pas protogee contre les modifications accidentelles de l'utilisateur. Par consequent il est recommande d'eviter d'y apporter toute alteration sous peine de dysfonctionnement.
Pour la definition de la structure Attributes, voir la documentation OpenPBS.
Cet accesseur retourne un parametre Script qui est une chaine de caracteres C contenant le chemin absolu (sur la machine d'execution) du script a soumettre au gestionnaire de batch.
Cette chaine n'est pas protegee contre les modifications accidentelles de l'utilisateur. Il est donc recommande de ne pas y apporter de modification.
Cet accesseur retourne un parametre Destination qui est une chaine de caracteres C contenant le nom de la queue, ou classe ou file selon les terminologies, du gestionnaire de batch dans laquelle le job doit etre soumis.
Cette chaine n'est pas protegee contre les modifications accidentelles de l'utilisateur. Il est donc recommande de ne pas y apporter de modification.