Skip to content

Conversation

andrearuffino
Copy link
Collaborator

Add support for:

  • Octet type
  • Floating types (float and double)
  • Integer types (short, long, long long, unsigned short, unsigned long and unsigned long long)
  • Sequence type
  • Nested IDL modules

Sdpierret and others added 30 commits May 31, 2021 16:01
manage sequences as list
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
Add basic support for publisher

know issue : Segfault after write() call

Signed-off-by: David Pierret <david.pierret@smile.fr>
manage sequences as list
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
Signed-off-by: David Pierret <david.pierret@smile.fr>
- Fix cpp issue where topic_types_ private member was accessed by derived class.
- Fix DataWriter python class issue where the datawriter used datareader_wait_for cpp binding.
- DataWriter and Publisher classes should not have a listener member.
- QoS still can be passed, but QOS_DEFAULTs are always used in cpp binding methods.
- Dash separation in label will be deprecated, use underscore instead
- DataWriter and DataReader wait_for methods does not use WaitSet dispatch. A simple while loop is used to check status conditions, and the STL current thread sleep is used to wait.
- DataRead take_next_sample does not perform his own wait but try immediately perform library call to take_next_sample.
- When checking limits of floating value with cpp STL library, min() returns the minimum positive representable value, lowest() must be used instead.
- Each supported type defined in IDL imports now the whole module name at once (importing the root and browsing into submodules resulted into a NULL value and an exception).
- When a module has a type which is defined into a parent module, the type is not found. Imports are now done properly.
- To investigate: Two Exceptions are now disabled in cpp bindings because the conditions seems not be required.
- DomainParticipant pointers were created with a factory, and then deleted with the help of SharedPointer (aliased to DomainParticipant_var). Mixing rough ptrs and shared ptrs causes troubles and the factory should now be responsible for the deletion of the participants.
- The IDL generated classes use Polymorphism (e.g: sequence type that directly derived from list). A simple call to Py_IsInstance() was not suffiscient and the exception was thrown (and unhandled) even though the case of the derived class should work.
- separate user.hpp and common.hpp into subfiles.
- cpp/hpp files use now four spaces indentation
- DecRef the TypeSupport_var object instead of calling direct delete.
- Import _pyopendds c bindings (and try-catch ImportError) in top level instead of __del__, because dynamically loaded modules are likely to be unavailable at terminate.
herme5 and others added 15 commits September 27, 2021 17:07
c_ubyte and c_byte are wrapped into UByte and Byte custom python classes.
Signed-off-by: David Pierret <david.pierret@smile.fr>
…Supports

# Conflicts:
#	pyopendds/dev/include/pyopendds/user.hpp
…Supports

# Conflicts:
#	pyopendds/DataWriter.py
#	pyopendds/Publisher.py
#	pyopendds/dev/include/pyopendds/user.hpp
#	pyopendds/dev/itl2py/CppOutput.py
#	pyopendds/dev/itl2py/PythonOutput.py
#	pyopendds/dev/itl2py/ast.py
#	pyopendds/dev/itl2py/templates/user.cpp
#	pyopendds/dev/itl2py/templates/user.py
#	pyopendds/ext/_pyopendds.cpp
#	tests/basic_test/publisher.py
…Supports

# Conflicts:
#	pyopendds/dev/include/pyopendds/user.hpp
(Reverse commit so that we mark the merging resolved as rejected).
@andrearuffino
Copy link
Collaborator Author

Take all from dev_TypeSupports when resolving.

There is one last conflict that was not detected in ext/_pyopendds.cpp:
two implementations of PyObject* datawriter_wait_for(PyObject* self, PyObject* args) were injected. Manually resolved by taking the one with 4-level indentation.

@andrearuffino andrearuffino merged commit 3d35bcd into master Oct 13, 2021
@andrearuffino andrearuffino deleted the dev_TypeSupports branch October 13, 2021 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants