Source Tree
The core C++ library lives in cpp/lib/
. Public headers are in
cpp/lib/include/opendnp3
.
The library has no public external dependencies. ASIO is completely hidden from the public API.
When building an external application on Linux without TLS support, you need only need to link against opendnp3:
-lopendnp3
CLR Bindings
The .NET bindings live in the dotnet
folder. CMake can optionally generate the
projects for them as part of the SLN file during build configuration.
# CLR bindings built using CMake
/dotnet
/CLRAdapter // a C++/CLI project that adapts the underlying C++ libraries to C#
/CLRInterface // Pure CLR interfaces and classes that comprise the API
/examples // C# example applications
Java Bindings
The java bindings live in the java
folder. CMake can optionally generate the
projects for them as part of the SLN or Makefile during build configuration.
# Java bindings built using CMake (native) and Maven (pom.xml)
/java
/bindings // Java w/ native stubs
/codegen // Code generator written in Scala that generates C++ JNI boilerplate
/cpp // C++ compiled to libopendnp3java.dll/so
/example // Java example programs that depend on api/bindings Jars