haiku/src/servers/launch/BaseJob.h

63 lines
1.4 KiB
C++

/*
* Copyright 2015, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
#ifndef BASE_JOB_H
#define BASE_JOB_H
#include <Job.h>
#include <StringList.h>
using namespace BSupportKit;
class BMessage;
class Condition;
class ConditionContext;
class Event;
class BaseJob : public BJob {
public:
BaseJob(const char* name);
~BaseJob();
const char* Name() const;
const ::Condition* Condition() const;
::Condition* Condition();
void SetCondition(::Condition* condition);
virtual bool CheckCondition(ConditionContext& context) const;
const ::Event* Event() const;
::Event* Event();
void SetEvent(::Event* event);
bool EventHasTriggered() const;
const BStringList& Environment() const;
BStringList& Environment();
const BStringList& EnvironmentSourceFiles() const;
BStringList& EnvironmentSourceFiles();
void SetEnvironment(const BMessage& message);
void GetSourceFilesEnvironment(
BStringList& environment);
void ResolveSourceFiles();
private:
void _GetSourceFileEnvironment(const char* script,
BStringList& environment);
void _ParseExportVariable(BStringList& environment,
const BString& line);
protected:
::Condition* fCondition;
::Event* fEvent;
BStringList fEnvironment;
BStringList fSourceFiles;
};
#endif // BASE_JOB_H