La classe FactBatchManager est abstraite. Elle definit une interface qui doit etre implementee par des classes specialisees en fonction du gestionnaire de batch et de son API de communication. See Classes specifiques.
Les objets repondant a l'interface de FactBatchManager sont automatiquement inseres dans le catalogue des fabriques de BatchManager a la construction de l'objet. Il est ainsi possible de definir statiquement des objets de ce type qui enrichiront le catalogue des la compilation. See Classe BatchManagerCatalog. See Classe BatchManager.
Les objets de la classe FactBatchManager ou de ses derivees sont des functors et renvoient au moment de l'appel un pointeur sur un objet gestionnaire de batch BatchManager associe a un serveur. L'allocation de l'objet est faite sur le tas et celui-ci doit donc etre desalloue manuellement par l'utilisateur de la bibliotheque au moment opportun.
class FactBatchManager { public: // Constructeur FactBatchManager(const string & type); // Destructeur virtual ~FactBatchManager(); // Functor virtual BatchManager * operator() (const char * hostname) const = 0; // Accesseur au type interne string getType() const; // Wrapping Python string __repr__() const; protected: string type; // Le type interne private: };
... // On recupere l'instance du catalogue de gestionnaires de batch Batch::BatchManagerCatalog cata = Batch::BatchManagerCatalog::getInstance(); // On cree une fabrique de BatchManager de type PBS Batch::FactBatchManager & fbm = * cata("PBS"); ...
Le constructeur de la classe prend un type qui doit identifer de maniere unique la fabrique au sein du catalogue de fabrique. Ce type sert de cle au catalogue. See Classe BatchManagerCatalog.
Le destructeur de la classe n'a pas d'action particuliere.
Cette methode est virtuelle pure. Elle doit etre surchargee dans les classes derivees et doit retourner un pointeur sur un objet de type BatchManager correpondant au type de la classe et oeuvrant sur la machine passee en argument. Le hostname est soit alphabetique soit numerique et doit etre soit un nom de machine valide soit une adresse IP valide. Aucun controle n'est a priori realise et cet argument est passe tel quel a l'API du gestionnaire de batch.
Cet objet agit comme parent vis-a-vis de l'objet BatchManager qu'il retourne.
Cette methode renvoie le type interne de l'objet, c'est-a-dire la cle sous lequel il est enregistre dans le catalogue.
Cette methode utilisable depuis Python retourne une description de l'objet FactBatchManager.