Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

STD

ecflow uses many parts of std library. Originally ecflow used boost::shared_ptr, however, for ecflow 5, this was replaced with the equivalent std::shared_ptr.

...

std::auto_ptr has been replaced with std::unique_ptr, boost::regex has been replaced with std::regex.

CEREAL

Is used to provide the client/server serializations, and uses JSON text. There was an option to use BINARY which is a lot faster. But then we lose the backward compatibility, and more importantly, the client/server communication may break due to byte order incompatibility. i.e when client/server are is on different hardware.

It is highly advised to subscribe to the CEREAL mailing lists. This allows notifications of the upcoming release of CEREAL, any performance improvements. It should be noted that we have already migrated to the new version, at least once.

...

The web page is at https://uscilab.github.io/cereal/

BOOST

ecflow uses many parts of the boost libs.

...

Other possible boost libs that were planned but not used, were boost exception. This would automatically add function, line number, etc. At the moment this is done manually. 

Boost build

Boost build is required to build/install the c++ boost libraries. At ECMWF boost is built/installed with metabuilder/master branch. 

To build/test ecflow with a new boost version without installing can also be done. Please use build_scripts/boost_build.sh. This can also be used to test install installation before going to the metabuilder.

...

It should be noted that to debug and build the boost libs does require some familiarity with boost bjam

Doxygen

Ecflow provides support for HTML doxygen generated documentation via integration with cmake. The main benefit here is to see the class hierarchy. 

...

Code Block
make doxygen

Then open in the browser: <builder_dir>/Doc/doxygen/html/index.html


SPHINX

At one point all of ecflow documentation was done with sphinx, however, when confluence was adopted, we were asked to stop using it. 

The ecflow python API documentation is still provided by SPHINX. However, to get documentation into confluence requires some massaging. This conversion was provided by user support.

SSL

Ecflow uses SSL for encrypted communication between the client and server. The cmake build will only use SLL when openssl libs are available on the system. Even when these lib libs are installed on the system, the user has the choice not to use them. It should be noted that SSL enabled client/server carries a small performance penalty. It was added due to an external customer request, and it not used internally.

...