Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Define __cplusplus for doxygen.
[simgrid.git] / doc / doxygen / module-s4u.doc
index 213049a..fe5d8bf 100644 (file)
@@ -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 <b>S4U is not ready for public use yet</b>. You should not go
-        that path unless you know what you are doing.  If unsure,
-        proceed to @ref MSG_API instead.
+@warning <b>S4U is still evolving: v3.18 is a beta release</b>. 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)&lt;Foo&gt;),
+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: