JeVois  1.20
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

◆ BlockingBehavior

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.

std::ostream & operator<<(std::ostream &out, Range< T > const &r)
Stream out as "[min ... max]".
Enum for Parameter.
std::istream & operator>>(std::istream &in, Range< T > &r)
Stream in as "[min ... max]".