Scicos: speedup model transformation
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / LinkAdapter.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014-2016 - Scilab Enterprises - Clement DAVID
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 #ifndef LINKADAPTER_HXX_
17 #define LINKADAPTER_HXX_
18
19 #include <string>
20
21 #include "adapters_utilities.hxx"
22 #include "BaseAdapter.hxx"
23 #include "model/Link.hxx"
24
25 namespace org_scilab_modules_scicos
26 {
27 namespace view_scilab
28 {
29
30 class LinkAdapter : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
31 {
32 public:
33     LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::Link* adaptee);
34     LinkAdapter(const LinkAdapter& adapter);
35     ~LinkAdapter();
36
37     static const std::wstring getSharedTypeStr()
38     {
39         return L"Link";
40     }
41
42     std::wstring getTypeStr() const;
43     std::wstring getShortTypeStr() const;
44
45     // move (if possible) the partial informatios to the model
46     static void relink(Controller& controller, model::Link* adaptee, const std::vector<ScicosID>& children);
47     // manage partial information after a model clone
48         static void add_partial_links_information(Controller& controller, model::BaseObject* original, model::BaseObject* cloned);
49
50 };
51
52 } /* namespace view_scilab */
53 } /* namespace org_scilab_modules_scicos */
54
55 #endif /* LINKADAPTER_HXX_ */