My Project
Loading...
Searching...
No Matches
LibThread::ProcTrigger Class Reference

Public Member Functions

 ProcTrigger (const char *p)
 
virtual bool ready ()
 
virtual bool accept (leftv arg)
 
virtual void activate (leftv arg)
 
virtual void execute ()
 
- Public Member Functions inherited from LibThread::Trigger
 Trigger ()
 
- Public Member Functions inherited from LibThread::Job
 Job ()
 
 ~Job ()
 
void addDep (Job *job)
 
void addDep (vector< Job * > &jobs)
 
void addDep (long ndeps, Job **jobs)
 
void addNotify (vector< Job * > &jobs)
 
void addNotify (Job *job)
 
void run ()
 
- Public Member Functions inherited from LibThread::SharedObject
 SharedObject ()
 
virtual ~SharedObject ()
 
void set_type (int type_init)
 
int get_type ()
 
void set_name (std::string &name_init)
 
void set_name (const char *s)
 
std::string & get_name ()
 
void incref (int by=1)
 
long decref ()
 
long getref ()
 
virtual BOOLEAN op2 (int op, leftv res, leftv a1, leftv a2)
 
virtual BOOLEAN op3 (int op, leftv res, leftv a1, leftv a2, leftv a3)
 

Private Attributes

string procname
 
bool success
 

Additional Inherited Members

- Data Fields inherited from LibThread::Job
ThreadPoolpool
 
long prio
 
size_t id
 
long pending_index
 
vector< Job * > deps
 
vector< Job * > notify
 
vector< Trigger * > triggers
 
vector< string > args
 
string result
 
void * data
 
bool fast
 
bool done
 
bool queued
 
bool running
 
bool cancelled
 

Detailed Description

Definition at line 2082 of file shared.cc.

Constructor & Destructor Documentation

◆ ProcTrigger()

LibThread::ProcTrigger::ProcTrigger ( const char * p)
inline

Definition at line 2087 of file shared.cc.

2087 : Trigger(), procname(p), success(false) {
2088 }
int p
Definition cfModGcd.cc:4086

Member Function Documentation

◆ accept()

virtual bool LibThread::ProcTrigger::accept ( leftv arg)
inlinevirtual

Implements LibThread::Trigger.

Definition at line 2093 of file shared.cc.

2093 {
2094 return TRUE;
2095 }
#define TRUE
Definition auxiliary.h:101

◆ activate()

virtual void LibThread::ProcTrigger::activate ( leftv arg)
inlinevirtual

Implements LibThread::Trigger.

Definition at line 2096 of file shared.cc.

2096 {
2097 if (!ready()) {
2098 pool->scheduler->lock.unlock();
2099 vector<leftv> argv;
2100 for (unsigned i = 0; i < args.size(); i++) {
2101 appendArg(argv, args[i]);
2102 }
2103 int error = false;
2104 while (arg) {
2105 appendArgCopy(argv, arg);
2106 arg = arg->next;
2107 }
2108 sleftv val;
2109 if (!error)
2110 error = executeProc(val, procname.c_str(), argv);
2111 if (!error) {
2112 if (val.Typ() == NONE || (val.Typ() == INT_CMD &&
2113 (long) val.Data()))
2114 {
2115 success = true;
2116 }
2117 val.CleanUp();
2118 }
2119 pool->scheduler->lock.lock();
2120 }
2121 }
int i
Definition cfEzgcd.cc:132
vector< string > args
Definition shared.cc:1553
ThreadPool * pool
Definition shared.cc:1546
virtual bool ready()
Definition shared.cc:2089
int Typ()
Definition subexpr.cc:1048
void * Data()
Definition subexpr.cc:1192
leftv next
Definition subexpr.h:86
void CleanUp(ring r=currRing)
Definition subexpr.cc:351
#define error(a)
static void appendArgCopy(vector< leftv > &argv, leftv arg)
Definition shared.cc:737
static void appendArg(vector< leftv > &argv, string &s)
Definition shared.cc:723
static BOOLEAN executeProc(sleftv &result, const char *procname, const vector< leftv > &argv)
Definition shared.cc:744
@ INT_CMD
Definition tok.h:96
#define NONE
Definition tok.h:223

◆ execute()

virtual void LibThread::ProcTrigger::execute ( )
inlinevirtual

Implements LibThread::Job.

Definition at line 2122 of file shared.cc.

2122 {
2123 // do nothing
2124 }

◆ ready()

virtual bool LibThread::ProcTrigger::ready ( )
inlinevirtual

Reimplemented from LibThread::Job.

Definition at line 2089 of file shared.cc.

2089 {
2090 if (!Trigger::ready()) return false;
2091 return success;
2092 }
virtual bool ready()
Definition shared.cc:1600

Field Documentation

◆ procname

string LibThread::ProcTrigger::procname
private

Definition at line 2084 of file shared.cc.

◆ success

bool LibThread::ProcTrigger::success
private

Definition at line 2085 of file shared.cc.


The documentation for this class was generated from the following file: