| 
    STLdoc
    
   STLdocumentation 
   | 
 
A class intended to be used as a base class for all independent agents. It is used to hide state from other agents and interact using message-passing. More...
#include <agents.h>
Public Member Functions | |
| _CONCRTIMP | agent () | 
| Constructs an agent.  More... | |
| virtual _CONCRTIMP | ~agent () | 
| Destroys the agent.  More... | |
| _CONCRTIMP ISource< agent_status > * | status_port () | 
| An asynchronous source of status information from the agent.  More... | |
| _CONCRTIMP agent_status | status () | 
| A synchronous source of status information from the agent.  More... | |
| _CONCRTIMP bool | start () | 
Moves an agent from the agent_created state to the agent_runnable state, and schedules it for execution.  More... | |
| _CONCRTIMP bool | cancel () | 
Moves an agent from either the agent_created or agent_runnable states to the agent_canceled state.  More... | |
Static Public Member Functions | |
| static _CONCRTIMP agent_status __cdecl | wait (_Inout_ agent *_PAgent, unsigned int _Timeout=COOPERATIVE_TIMEOUT_INFINITE) | 
| Waits for an agent to complete its task.  More... | |
| static _CONCRTIMP void __cdecl | wait_for_all (size_t _Count, _In_reads_(_Count) agent **_PAgents, _Out_writes_opt_(_Count) agent_status *_PStatus=NULL, unsigned int _Timeout=COOPERATIVE_TIMEOUT_INFINITE) | 
| Waits for all of the specified agents to complete their tasks.  More... | |
| static _CONCRTIMP void __cdecl | wait_for_one (size_t _Count, _In_reads_(_Count) agent **_PAgents, agent_status &_Status, size_t &_Index, unsigned int _Timeout=COOPERATIVE_TIMEOUT_INFINITE) | 
| Waits for any one of the specified agents to complete its task.  More... | |
Protected Member Functions | |
| virtual void | run ()=0 | 
Represents the main task of an agent. run should be overridden in a derived class, and specifies what the agent should do after it has been started.  More... | |
| _CONCRTIMP bool | done () | 
Moves an agent into the agent_done state, indicating that the agent has completed.  More... | |
Protected Attributes | |
| overwrite_buffer< agent_status > | _M_status | 
| Holds the current status of the agent.  More... | |
Private Member Functions | |
| agent const & | operator= (agent const &) | 
| agent (agent const &) | |
Static Private Member Functions | |
| static void __cdecl | _Agent_task_wrapper (void *data) | 
Private Attributes | |
| volatile long | _M_fStartable | 
| volatile long | _M_fCancelable | 
| Scheduler * | _M_pScheduler | 
| ScheduleGroup * | _M_pScheduleGroup | 
A class intended to be used as a base class for all independent agents. It is used to hide state from other agents and interact using message-passing.
For more information, see Asynchronous Agents.
| _CONCRTIMP Concurrency::agent::agent | ( | ) | 
Constructs an agent.
The runtime uses the default scheduler if you do not specify the _PScheduler or _PGroup parameters.
      
  | 
  virtual | 
Destroys the agent.
It is an error to destroy an agent that is not in a terminal state (either agent_done or agent_canceled). This can be avoided by waiting for the agent to reach a terminal state in the destructor of a class that inherits from the agent class. 
      
  | 
  private | 
| _CONCRTIMP bool Concurrency::agent::cancel | ( | ) | 
Moves an agent from either the agent_created or agent_runnable states to the agent_canceled state. 
true if the agent was canceled, false otherwise. An agent cannot be canceled if it has already started running or has already completed. 
      
  | 
  protected | 
Moves an agent into the agent_done state, indicating that the agent has completed. 
true if the agent is moved to the agent_done state, false otherwise. An agent that has been canceled cannot be moved to the agent_done state. This method should be called at the end of the run method, when you know the execution of your agent has completed. 
      
  | 
  protectedpure virtual | 
Represents the main task of an agent. run should be overridden in a derived class, and specifies what the agent should do after it has been started. 
The agent status is changed to agent_started right before this method is invoked. The method should invoke done on the agent with an appropriate status before returning, and may not throw any exceptions. 
| _CONCRTIMP bool Concurrency::agent::start | ( | ) | 
Moves an agent from the agent_created state to the agent_runnable state, and schedules it for execution. 
true if the agent started correctly, false otherwise. An agent that has been canceled cannot be started. | _CONCRTIMP agent_status Concurrency::agent::status | ( | ) | 
A synchronous source of status information from the agent.
| _CONCRTIMP ISource<agent_status>* Concurrency::agent::status_port | ( | ) | 
An asynchronous source of status information from the agent.
      
  | 
  static | 
Waits for an agent to complete its task.
| _PAgent | A pointer to the agent to wait for. | 
| _Timeout | The maximum time for which to wait, in milliseconds. | 
agent_status of the agent when the wait completes. This can either be agent_canceled or agent_done. An agent task is completed when the agent enters the agent_canceled or agent_done states. 
If the parameter _Timeout  has a value other than the constant COOPERATIVE_TIMEOUT_INFINITE, the exception operation_timed_out is thrown if the specified amount of time expires before the agent has completed its task.
      
  | 
  static | 
Waits for all of the specified agents to complete their tasks.
| _Count | The number of agent pointers present in the array _PAgents . | 
| _PAgents | An array of pointers to the agents to wait for. | 
| _PStatus | A pointer to an array of agent statuses. Each status value will represent the status of the corresponding agent when the method returns. | 
| _Timeout | The maximum time for which to wait, in milliseconds. | 
An agent task is completed when the agent enters the agent_canceled or agent_done states. 
If the parameter _Timeout  has a value other than the constant COOPERATIVE_TIMEOUT_INFINITE, the exception operation_timed_out is thrown if the specified amount of time expires before the agent has completed its task.
      
  | 
  static | 
Waits for any one of the specified agents to complete its task.
| _Count | The number of agent pointers present in the array _PAgents . | 
| _PAgents | An array of pointers to the agents to wait for. | 
| _Status | A reference to a variable where the agent status will be placed. | 
| _Index | A reference to a variable where the agent index will be placed. | 
| _Timeout | The maximum time for which to wait, in milliseconds. | 
An agent task is completed when the agent enters the agent_canceled or agent_done states. 
If the parameter _Timeout  has a value other than the constant COOPERATIVE_TIMEOUT_INFINITE, the exception operation_timed_out is thrown if the specified amount of time expires before the agent has completed its task.
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  protected | 
Holds the current status of the agent.
 1.8.8