1/* 2 * Copyright 2015, Axel Dörfler, axeld@pinc-software.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef BASE_JOB_H 6#define BASE_JOB_H 7 8 9#include <Job.h> 10#include <StringList.h> 11 12 13using namespace BSupportKit; 14 15class BMessage; 16class Condition; 17class ConditionContext; 18class Event; 19 20 21class BaseJob : public BJob { 22public: 23 BaseJob(const char* name); 24 ~BaseJob(); 25 26 const char* Name() const; 27 28 const ::Condition* Condition() const; 29 ::Condition* Condition(); 30 void SetCondition(::Condition* condition); 31 virtual bool CheckCondition(ConditionContext& context) const; 32 33 const ::Event* Event() const; 34 ::Event* Event(); 35 void SetEvent(::Event* event); 36 bool EventHasTriggered() const; 37 38 const BStringList& Environment() const; 39 BStringList& Environment(); 40 const BStringList& EnvironmentSourceFiles() const; 41 BStringList& EnvironmentSourceFiles(); 42 void SetEnvironment(const BMessage& message); 43 44 void GetSourceFilesEnvironment( 45 BStringList& environment); 46 void ResolveSourceFiles(); 47 48private: 49 void _GetSourceFileEnvironment(const char* script, 50 BStringList& environment); 51 void _ParseExportVariable(BStringList& environment, 52 const BString& line); 53 54protected: 55 ::Condition* fCondition; 56 ::Event* fEvent; 57 BStringList fEnvironment; 58 BStringList fSourceFiles; 59}; 60 61 62#endif // BASE_JOB_H 63