GNU Radio 3.3.0 C++ API
|
Concrete class that manages SPE jobs. More...
#include <gc_job_manager_impl.h>
Public Member Functions | |
void | event_handler_loop () |
void | job_completer_loop () |
virtual | ~gc_job_manager_impl () |
virtual bool | shutdown () |
virtual int | nspes () const |
Return number of SPE's currently allocated to job manager. | |
virtual gc_job_desc * | alloc_job_desc () |
Return a pointer to a properly aligned job descriptor, or zero if none are available. | |
virtual void | free_job_desc (gc_job_desc *jd) |
virtual bool | submit_job (gc_job_desc *jd) |
Submit a job for asynchronous processing on an SPE. | |
virtual bool | wait_job (gc_job_desc *jd) |
Wait for job to complete. | |
virtual int | wait_jobs (unsigned int njobs, gc_job_desc *jd[], bool done[], gc_wait_mode mode) |
wait for 1 or more jobs to complete. | |
virtual int | ea_args_maxsize () |
virtual gc_proc_id_t | lookup_proc (const std::string &name) |
virtual std::vector< std::string > | proc_names () |
Friends | |
gc_job_manager_sptr | gc_make_job_manager (const gc_jm_options *options) |
Concrete class that manages SPE jobs.
This class contains all the implementation details.
virtual gc_job_manager_impl::~gc_job_manager_impl | ( | ) | [virtual] |
virtual gc_job_desc* gc_job_manager_impl::alloc_job_desc | ( | ) | [virtual] |
Return a pointer to a properly aligned job descriptor, or zero if none are available.
Implements gc_job_manager.
virtual int gc_job_manager_impl::ea_args_maxsize | ( | ) | [virtual] |
Return the maximum number of bytes of EA arguments that may be copied to or from the SPE in a single job. The limit applies independently to the "get" and "put" args.
Implements gc_job_manager.
void gc_job_manager_impl::event_handler_loop | ( | ) |
virtual void gc_job_manager_impl::free_job_desc | ( | gc_job_desc * | jd | ) | [virtual] |
Implements gc_job_manager.
void gc_job_manager_impl::job_completer_loop | ( | ) |
virtual gc_proc_id_t gc_job_manager_impl::lookup_proc | ( | const std::string & | proc_name | ) | [virtual] |
Return gc_proc_id_t associated with spu procedure proc_name
if one exists, otherwise throws gc_unknown_proc.
Implements gc_job_manager.
virtual int gc_job_manager_impl::nspes | ( | ) | const [virtual] |
Return number of SPE's currently allocated to job manager.
Implements gc_job_manager.
virtual std::vector<std::string> gc_job_manager_impl::proc_names | ( | ) | [virtual] |
Return a vector of all known spu procedure names.
Implements gc_job_manager.
virtual bool gc_job_manager_impl::shutdown | ( | ) | [virtual] |
Stop accepting new jobs. Wait for existing jobs to complete. Return all managed SPE's to the system.
Implements gc_job_manager.
virtual bool gc_job_manager_impl::submit_job | ( | gc_job_desc * | jd | ) | [virtual] |
Submit a job for asynchronous processing on an SPE.
[in] | jd | pointer to job description |
The caller must not read or write the job description or any of the memory associated with any indirect arguments until after calling wait_job.
Implements gc_job_manager.
virtual bool gc_job_manager_impl::wait_job | ( | gc_job_desc * | jd | ) | [virtual] |
Wait for job to complete.
A thread may only wait for jobs which it submitted.
Implements gc_job_manager.
virtual int gc_job_manager_impl::wait_jobs | ( | unsigned int | njobs, |
gc_job_desc * | jd[], | ||
bool | done[], | ||
gc_wait_mode | mode | ||
) | [virtual] |
wait for 1 or more jobs to complete.
[in] | njobs | is the length of arrays jd and done . |
[in] | jd | are the jobs that are to be waited for. |
[out] | done | indicates whether the corresponding job is complete. |
[in] | mode | indicates whether to wait for ALL or ANY of the jobs in jd to complete. |
A thread may only wait for jobs which it submitted.
Implements gc_job_manager.
gc_job_manager_sptr gc_make_job_manager | ( | const gc_jm_options * | options | ) | [friend] |