|
Robot Raconteur Core C++ Library
|
Utility class to use a C++ range with Generator<Return,void>. More...
#include <Generator.h>
Public Member Functions | |
| RR_OVIRTUAL T::value_type | Next () RR_OVERRIDE |
| Advance the generator. | |
| RR_OVIRTUAL void | Abort () RR_OVERRIDE |
| Abort the generator. | |
| RR_OVIRTUAL void | Close () RR_OVERRIDE |
| Close the generator. | |
| RR_OVIRTUAL T::value_type | Next (const void &v) RR_OVERRIDE=0 |
| Advance the generator. | |
| RR_OVIRTUAL void | AsyncNext (const void &v, boost::function< void(const T::value_type &, const boost::shared_ptr< RobotRaconteurException > &err)> handler, int32_t timeout=RR_TIMEOUT_INFINITE) RR_OVERRIDE |
| Asynchronously advance the generator. | |
| RR_OVIRTUAL void | AsyncAbort (boost::function< void(const boost::shared_ptr< RobotRaconteurException > &)> handler, int32_t timeout=RR_TIMEOUT_INFINITE) RR_OVERRIDE |
| Asynchronously abort the generator. | |
| virtual void | AsyncAbort (boost::function< void(const boost::shared_ptr< RobotRaconteurException > &err)> handler, int32_t timeout=RR_TIMEOUT_INFINITE)=0 |
| Asynchronously abort the generator. | |
| RR_OVIRTUAL void | AsyncClose (boost::function< void(const boost::shared_ptr< RobotRaconteurException > &)> handler, int32_t timeout=RR_TIMEOUT_INFINITE) RR_OVERRIDE |
| Asynchronously closes the generator. | |
| virtual void | AsyncClose (boost::function< void(const boost::shared_ptr< RobotRaconteurException > &err)> handler, int32_t timeout=RR_TIMEOUT_INFINITE)=0 |
| Asynchronously closes the generator. | |
| virtual bool | TryNext (const void &v, T::value_type &ret) |
| Try to advance the generator. Return false if no more values are available. | |
Utility class to use a C++ range with Generator<Return,void>.
Examples of C++ ranges include std::vector<T> or std::list<T>
Use CreateRangeGenerator() helper function to instantiate this type
| T | The type contained in the range |
|
inlinevirtual |
Abort the generator.
Aborts and destroys the generator. This is assumed to be an error condition. Next() should throw OperationAbortedException if called after Abort(). Any ongoing operations should be terminated with an error condition, for example a moving robot should be immediately halted.
Implements RobotRaconteur::SyncGenerator< T::value_type, void >.
|
pure virtualinherited |
Asynchronously abort the generator.
Same as Abort() but returns asynchronously.
| handler | The handler to call when abort is complete |
| timeout | Timeout in milliseconds, or RR_TIMEOUT_INFINITE for no timeout. |
|
inlineinherited |
Asynchronously abort the generator.
Same as Abort() but returns asynchronously.
| handler | The handler to call when abort is complete |
| timeout | Timeout in milliseconds, or RR_TIMEOUT_INFINITE for no timeout. |
|
pure virtualinherited |
Asynchronously closes the generator.
Same as Close() but returns asynchronously.
| handler | The handler to call when close is complete |
| timeout | Timeout in milliseconds, or RR_TIMEOUT_INFINITE for no timeout. |
|
inlineinherited |
Asynchronously closes the generator.
Same as Close() but returns asynchronously.
| handler | The handler to call when close is complete |
| timeout | Timeout in milliseconds, or RR_TIMEOUT_INFINITE for no timeout. |
|
inlinevirtualinherited |
Asynchronously advance the generator.
Same as Next() but returns asynchronously.
| v | Parameter to pass to generator |
| handler | A handler function to receive the return value or an exception |
| timeout | Timeout in milliseconds, or RR_TIMEOUT_INFINITE for no timeout. |
Implements RobotRaconteur::Generator< T::value_type, void >.
|
inlinevirtual |
Close the generator.
Closes the generator. Closing the generator terminates iteration and destroys the generator. This operation cleanly closes the generator, and is not considered to be an error condition. Next() should throw StopIterationException if called after Close().
Implements RobotRaconteur::SyncGenerator< T::value_type, void >.
|
inline |
|
pure virtualinherited |
Advance the generator.
Next() advances the generator to retrieve the next value. This version of Generator includes passing a parameter v to the generator.
| v | Parameter to pass to generator |
Implements RobotRaconteur::Generator< T::value_type, void >.
|
inlinevirtualinherited |
Try to advance the generator. Return false if no more values are available.
TryNext() is similar to Next() but returns false if no more values are available. This is useful for generators that may not have a fixed number of values.
| v | Parameter to pass to generator |
| ret | Return value from generator |