fix missing-override warnings on Scilab types
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / LinkAdapter.hxx
index 5545b94..6c1a425 100644 (file)
@@ -1,12 +1,15 @@
 /*
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
+ *  Copyright (C) 2014-2016 - Scilab Enterprises - Clement DAVID
  *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
  *
  */
 
 #define LINKADAPTER_HXX_
 
 #include <string>
+#include <vector>
 
+#include "adapters_utilities.hxx"
 #include "BaseAdapter.hxx"
-
 #include "model/Link.hxx"
+#include "model/Block.hxx"
 
 namespace org_scilab_modules_scicos
 {
 namespace view_scilab
 {
 
-class LinkAdapter : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
+class LinkAdapter final : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
 {
 public:
-    LinkAdapter(bool ownAdaptee, org_scilab_modules_scicos::model::Link* adaptee);
+    LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::Link* adaptee);
+    LinkAdapter(const LinkAdapter& adapter);
     ~LinkAdapter();
 
     static const std::wstring getSharedTypeStr()
@@ -35,20 +41,21 @@ public:
         return L"Link";
     }
 
-    std::wstring getTypeStr();
-    std::wstring getShortTypeStr();
-    types::InternalType* clone();
-
-    std::vector<double> getFrom() const;
-    bool setFrom(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level = true);
-    std::vector<double> getTo() const;
-    bool setTo(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level = true);
-private:
-    std::vector<double> from_content;
-    std::vector<double> to_content;
+    std::wstring getTypeStr() const override;
+    std::wstring getShortTypeStr() const override;
+
+    // move (if possible) the partial informations to the model
+    static void relink(Controller& controller, model::Link* adaptee, const std::vector<ScicosID>& children);
+    static void reverse_relink(Controller& controller, model::Block* adaptee, int index, const std::vector<ScicosID>& children);
+    // manage partial information after a model clone
+    static void add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned);
+    // manage partial information before a model delete
+    static void store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children);
+    // remove all information related to the link
+    static void remove_partial_links_information(ScicosID uid);
 };
 
 } /* namespace view_scilab */
 } /* namespace org_scilab_modules_scicos */
 
-#endif /* MODELADAPTER_HXX_ */
+#endif /* LINKADAPTER_HXX_ */