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

Public Member Functions

 AccTrigger (long count_init)
 
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

long count
 

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 1990 of file shared.cc.

Constructor & Destructor Documentation

◆ AccTrigger()

LibThread::AccTrigger::AccTrigger ( long count_init)
inline

Definition at line 1994 of file shared.cc.

1994 : Trigger(), count(count_init) {
1995 }

Member Function Documentation

◆ accept()

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

Implements LibThread::Trigger.

Definition at line 2000 of file shared.cc.

2000 {
2001 return true;
2002 }

◆ activate()

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

Implements LibThread::Trigger.

Definition at line 2003 of file shared.cc.

2003 {
2004 while (arg != NULL && !ready()) {
2005 args.push_back(LinTree::to_string(arg));
2006 if (ready()) {
2007 return;
2008 }
2009 arg = arg->next;
2010 }
2011 }
virtual bool ready()
Definition shared.cc:1996
vector< string > args
Definition shared.cc:1553
leftv next
Definition subexpr.h:86
std::string to_string(leftv val)
Definition lintree.cc:843
#define NULL
Definition omList.c:12

◆ execute()

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

Implements LibThread::Job.

Definition at line 2012 of file shared.cc.

2012 {
2014 l->Init(args.size());
2015 for (unsigned i = 0; i < args.size(); i++) {
2017 memcpy(&l->m[i], val, sizeof(*val));
2018 omFreeBin(val, sleftv_bin);
2019 }
2020 sleftv val;
2021 memset(&val, 0, sizeof(val));
2022 val.rtyp = LIST_CMD;
2023 val.data = l;
2024 result = LinTree::to_string(&val);
2025 // val.CleanUp();
2026 }
int l
Definition cfEzgcd.cc:100
int i
Definition cfEzgcd.cc:132
string result
Definition shared.cc:1554
int rtyp
Definition subexpr.h:91
void * data
Definition subexpr.h:88
INLINE_THIS void Init(int l=0)
EXTERN_VAR omBin sleftv_bin
Definition ipid.h:145
VAR omBin slists_bin
Definition lists.cc:23
slists * lists
leftv from_string(std::string &str)
Definition lintree.cc:854
#define omAlloc0Bin(bin)
#define omFreeBin(addr, bin)
sleftv * leftv
Definition structs.h:53
@ LIST_CMD
Definition tok.h:118

◆ ready()

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

Reimplemented from LibThread::Job.

Definition at line 1996 of file shared.cc.

1996 {
1997 if (!Trigger::ready()) return false;
1998 return args.size() >= count;
1999 }
virtual bool ready()
Definition shared.cc:1600

Field Documentation

◆ count

long LibThread::AccTrigger::count
private

Definition at line 1992 of file shared.cc.


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