Rumba C++ SDK
PlugList.h
Go to the documentation of this file.
1 /*
2 
3  *
4  ***
5  *****
6  ********************* Mercenaries Engineering SARL
7  ***************** Copyright (C) 2018
8  *************
9  ********* http://www.mercenaries-engineering.com
10  ***********
11  **** ****
12  ** **
13 
14 */
15 #pragma once
16 
17 #include "Plug.h"
18 #include "Value.h"
19 
20  namespace maquina
21  {
23  class MAQUINA_EXPORT PlugList : public Value
24  {
25  public:
26 
28 
29  PlugList(const Value &v);
30 
32 
34  {
35  public:
38  {
39  public:
40  using iterator_category = std::forward_iterator_tag;
41  using value_type = Plug;
42  using difference_type = std::ptrdiff_t;
43  using pointer = Plug;
44  using reference = Plug;
45 
46  reference operator*() const;
47  bool operator==(const Iterator &other) const;
48  bool operator!=(const Iterator &other) const;
49  Iterator& operator++();
50  Iterator( void *iterator );
51  Iterator( const Iterator &other );
52  ~Iterator();
53  private:
54  void *_internal;
55  };
56 
57  Plugs( void *value )
58  : _value{ value }
59  {}
60  Iterator begin();
61  Iterator end();
62  private:
63  void* _value;
64  };
65 
67  Plugs plugs() const;
68 
70  PlugList(const std::shared_ptr<Impl>& impl)
71  : Value{ impl }
72  {}
73  };
74  }
std::ptrdiff_t difference_type
Definition: PlugList.h:42
Plugs(void *value)
Definition: PlugList.h:57
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
std::forward_iterator_tag iterator_category
Definition: PlugList.h:40
A Plug iterator.
Definition: PlugList.h:37
#define MAQUINA_EXPORT
Definition: Export.h:31
A node plug.
Definition: Plug.h:59
bool operator!=(const C *str, const StringViewBase< C, STDS > &sv) noexcept
Definition: StringView.h:306
A value containing a list of plugs.
Definition: PlugList.h:23
bool operator==(const C *str, const StringViewBase< C, STDS > &sv) noexcept
Definition: StringView.h:274
Color4< T > operator*(S a, const Color4< T > &v)
Definition: ImathColor.h:727
A Plug accessor.
Definition: PlugList.h:33
Base class of all Rumba values.
Definition: Value.h:34