/***********************************************************************
*
* ELMER, A Computational Fluid Dynamics Program.
*
* Copyright 1st April 1995 - , Center for Scientific Computing,
* Finland.
*
* All rights reserved. No part of this program may be used,
* reproduced or transmitted in any form or by any means
* without the written permission of CSC.
*
* Address: Center for Scientific Computing
* Tietotie 6, P.O. BOX 405
* 02101 Espoo, Finland
* Tel. +358 0 457 2001
* Telefax: +358 0 457 2302
* EMail: Jari.Jarvinen@csc.fi
************************************************************************/
/***********************************************************************
Program: ELMER Front
Module: ecif_process.h
Language: C++
Date: 20.01.99
Version: 1.00
Author(s): Martti Verho
Revisions:
Abstract: Process class for handling external processes.
************************************************************************/
#ifndef _PROCESS_
#define _PROCESS_
#include "ecif_def.h"
class Process
{
public:
Process();
Process(char* process_cmd, char* process_args);
Process(char* process_cmd, char* process_args,
int process_nbr, char* process_name,
enum priorityLevel process_priority,
bool show_console, char* logfile_name);
~Process();
bool exists();
const char* getName() { return name;}
Hfile getOutputHandle() { return outputHandle;}
priorityLevel getPriorityLevel() { return priority; }
Hprocess getProcessHandle() { return processHandle;}
ProcessId getProcessId() { return processId;}
Hprocess getThreadHandle() { return threadHandle;}
ProcessId getThreadId() { return threadId;}
int ID() { return id;}
bool resume();
void setLogfile(char* logfile);
void setShowConsole(bool value) { showConsole = value; }
void setPriorityLevel(priorityLevel level);
bool start();
bool stop();
bool suspend();
private:
char* arguments;
char* command;
int id;
Hfile logfileHandle;
char* logfileName;
char* name;
Hfile outputHandle;
enum priorityLevel priority;
Hprocess processHandle;
ProcessId processId;
bool showConsole;
bool started;
bool stopped;
Hprocess threadHandle;
ProcessId threadId;
void init();
Hfile setLogfile();
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1