53 lines
1.4 KiB
C
Raw Normal View History

#ifndef __EXECP_H
#define __EXECP_H
#ifndef __STRINGS_H
#include <strings.h>
#endif
// @doc EXTERNAL
// @class TExternal_app | Classe per l'esecuzione di oggetti esterni
//
// @base public | TObject
class TExternal_app : public TObject
// @author:(INTERNAL) Villa
// @comm Gli oggetti eseguiti dalla presente classe possono essere eseguiti
// in background in tutti gli ambienti, oppure in modo sincrono.
// <nl>Non sono implementate linee di comando; si suppone che l'utente
// utilizzi la mailbox per questo.
// @access:(INTERNAL) Private Member
{
// @cmember:(INTERNAL) Nome dell'applicazione (deve essere allocata dall'utente)
TFilename _path;
// @cmember:(INTERNAL) Ultimo exit code
int _exitcode;
protected:
void copy(const TExternal_app& a) { _path = a._path; _exitcode = 0; }
// @access Public Member
public:
// @cmember Controlla se l'utente puo' eseguire il programma
bool can_run() const;
// @cmember Esegue il processo
long run(bool async = FALSE, byte user = TRUE, bool iconizetask = TRUE /*, bool showchild = TRUE */);
// @cmember Ritorna l'ultimo codice di uscita
int exitcode()
{ return _exitcode; }
const TExternal_app& operator = (const TExternal_app& a)
{ copy(a); return a; }
// @cmember Costruttore
TExternal_app(const char* p);
TExternal_app(const TExternal_app& a) { copy(a); }
virtual ~TExternal_app() { }
};
#endif