JeVois  1.3
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
JeVois-specific types and generic helper classes

These types and classes support the core JeVois implementation. Pay particular attention to the very useful JEVOIS_DEFINE_ENUM_CLASS(name, SEQ) macro to define new enums that can be used in Parameter to allow menu-style parameters.


Helper macro to define new enum class types. SEQ should be a BOOST_PP_SEQ (see example syntax below). You will get:

You can in particular use name_Values when defining a Parameter definition to list all the valid values, and the streaming operators will allow you to set the Parameter value by string, etc.

For example:

JEVOIS_DEFINE_ENUM_CLASS(myEnum, (One) (Two) (Three));

expands to:

Note how the operator>> will throw if the given string does not match the string representation of one of the enum's values.


class  jevois::BoundedBuffer< T, WhenFull, WhenEmpty >
 Thread-safe synchronized producer/consumer queue. More...
class  jevois::Range< T >
 A generic range class. More...
class  jevois::Semaphore< BB >
 A simple semaphore. More...
class  jevois::Singleton< T >
 A generic singleton class to enforce a single instance of an object. More...
class  jevois::StepRange< T >
 A generic range class with a step. More...


enum  jevois::BlockingBehavior { jevois::BlockingBehavior::Block, jevois::BlockingBehavior::Throw }
 Behavior when attemting an operation that cannot be completed immediately. More...

Enumeration Type Documentation

Behavior when attemting an operation that cannot be completed immediately.

Defines the behavior of Semaphore, BoundedBuffer, etc.


Block until operation can be completed.


Throw std::runtime_error if operation cannot be completed immediately.

Definition at line 25 of file BlockingBehavior.H.