time_sync is use to describe temporal structure to synchronize each attached #time_event evaluation.  
 More...
time_sync is use to describe temporal structure to synchronize each attached #time_event evaluation. 
time_sync is also a #time_event container. 
- Todo:
 - the shared_from_this is used at a single point, maybe it should be removed ? or replaced with intrusive_ptr ? 
 
 | 
| time_value  | get_date () const noexcept | 
|   | get the date  
  | 
|   | 
| 
const expression &  | get_expression () const noexcept | 
|   | get the expression of the time_sync 
  | 
|   | 
| time_sync &  | set_expression (expression_ptr) noexcept | 
|   | set the expression of the time_sync  
  | 
|   | 
| iterator  | emplace (const_iterator, time_event::exec_callback, expression_ptr=expressions::make_expression_true()) | 
|   | create and store a #time_event  
  | 
|   | 
| 
iterator  | insert (const_iterator, std::shared_ptr< time_event >) | 
|   | 
| 
void  | remove (const std::shared_ptr< time_event > &) | 
|   | 
| auto &  | get_time_events () noexcept | 
|   | get the #time_events of the time_sync  
  | 
|   | 
| const auto &  | get_time_events () const noexcept | 
|   | get the #time_events of the time_sync  
  | 
|   | 
| 
bool  | is_observing_expression () const noexcept | 
|   | 
| 
bool  | is_evaluating () const noexcept | 
|   | 
| void  | start_trigger_request () noexcept | 
|   | evaluate all #time_event's to make them to happen or to dispose them  
  | 
|   | 
| 
void  | end_trigger_request () noexcept | 
|   | 
| bool  | is_autotrigger () const noexcept | 
|   | 
| 
void  | set_autotrigger (bool) noexcept | 
|   | 
| 
bool  | is_start () const noexcept | 
|   | 
| 
void  | set_start (bool) noexcept | 
|   | 
| 
void  | observe_expression (bool) | 
|   | enable observation of the ossia::expression 
  | 
|   | 
| 
void  | observe_expression (bool, ossia::expressions::expression_result_callback cb) | 
|   | 
| 
void  | reset () | 
|   | Resets the internal state. Necessary when restarting an execution. 
  | 
|   | 
| 
void  | cleanup () | 
|   | 
| 
void  | mute (bool b) | 
|   | 
| 
bool  | muted () const noexcept | 
|   | 
| 
status  | get_status () const noexcept | 
|   | 
| 
void  | set_sync_rate (double syncRatio) noexcept | 
|   | 
| 
double  | get_sync_rate () const noexcept | 
|   | 
| 
bool  | has_sync_rate () const noexcept | 
|   | 
| 
void  | set_trigger_date (time_value v) noexcept | 
|   | 
| 
time_value  | get_trigger_date () const noexcept | 
|   | 
| 
bool  | has_trigger_date () const noexcept | 
|   | 
| 
void  | set_is_being_triggered (bool v) noexcept | 
|   | 
| 
bool  | is_being_triggered () const noexcept | 
|   |