Xcos MVC: use shared_ptr on the Model
[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-2014 - Scilab Enterprises - Clement DAVID
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 #ifndef LINKADAPTER_HXX_
14 #define LINKADAPTER_HXX_
15
16 #include <string>
17
18 #include "BaseAdapter.hxx"
19
20 #include "model/Link.hxx"
21
22 namespace org_scilab_modules_scicos
23 {
24 namespace view_scilab
25 {
26
27 class LinkAdapter : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
28 {
29 public:
30     LinkAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Link> adaptee);
31     LinkAdapter(const LinkAdapter& adapter);
32     ~LinkAdapter();
33
34     static const std::wstring getSharedTypeStr()
35     {
36         return L"Link";
37     }
38
39     std::wstring getTypeStr();
40     std::wstring getShortTypeStr();
41
42     std::vector<double> getFrom() const;
43     bool setFrom(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level = true);
44     std::vector<double> getTo() const;
45     bool setTo(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level = true);
46 private:
47     std::vector<double> from_content;
48     std::vector<double> to_content;
49 };
50
51 } /* namespace view_scilab */
52 } /* namespace org_scilab_modules_scicos */
53
54 #endif /* MODELADAPTER_HXX_ */