X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/018bdce8a96722fce641788226dd4bce6c03203c..52fd53c1927b271828348841b782281f64b7bef8:/doc/doxygen/module-s4u.doc diff --git a/doc/doxygen/module-s4u.doc b/doc/doxygen/module-s4u.doc index 213049a257..fe5d8bf9ef 100644 --- a/doc/doxygen/module-s4u.doc +++ b/doc/doxygen/module-s4u.doc @@ -1,18 +1,21 @@ /** -@defgroup s4u_api S4U: Next Generation SimGrid API +@defgroup s4u_api S4U: Next generation SimGrid API @brief Future core API, mixing the full power of SimGrid to the power of C++. -The S4U API is currently under heavy work, but will eventually -deprecate the MSG and SimDag APIs. Everything that you can do in -SimGrid will be possible in S4U. +The S4U API is near from its final state. Everything that you can do in +SimGrid should be possible in S4U and the missing pieces are seen as +bugs. -@warning S4U is not ready for public use yet. You should not go - that path unless you know what you are doing. If unsure, - proceed to @ref MSG_API instead. +@warning S4U is still evolving: v3.18 is a beta release. You + are really welcome to test it, but this API may change + between releases. This is however the way to go if you want + to create a new long-term project. If you want to play safe, + proceed to deprecated @ref MSG_API instead. Unsurprisingly, the S4U interface matches the concepts presented in @ref starting_components "the introduction". You should read this page -first, to not get lost in the amount of classes provided here. +first, to not get lost in the amount of classes provided here. Or you +could jump to the \ref s4u_examples directly if you prefer. @section s4u_raii Memory Management of S4U objects @@ -20,9 +23,10 @@ For sake of simplicity, we use [RAII](https://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization) everywhere in S4U. This is an idiom where resources are automatically managed through the context. Provided that you never manipulate -objects of type Foo directly but always FooPtr references, you will -never have to explicitely release the resource that you use nor to -free the memory of unused objects. +objects of type Foo directly but always FooPtr references (which are +[boost::intrusive_ptr](http://www.boost.org/doc/libs/1_61_0/libs/smart_ptr/intrusive_ptr.html)<Foo>), +you will never have to explicitely release the resource that you use +nor to free the memory of unused objects. Here is a little example: