Xcos MVC: use shared_ptr on the Model
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / DiagramAdapter.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 DIAGRAMADAPTER_HXX_
14 #define DIAGRAMADAPTER_HXX_
15
16 #include <string>
17
18 #include "utilities.hxx"
19 #include "BaseAdapter.hxx"
20 #include "model/Diagram.hxx"
21
22 namespace org_scilab_modules_scicos
23 {
24 namespace view_scilab
25 {
26
27 class DiagramAdapter : public BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::Diagram>
28 {
29 public:
30     DiagramAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Diagram> adaptee);
31     DiagramAdapter(const DiagramAdapter& adapter);
32     ~DiagramAdapter();
33
34     static const std::wstring getSharedTypeStr()
35     {
36         return L"diagram";
37     }
38
39     std::wstring getTypeStr();
40     std::wstring getShortTypeStr();
41
42     types::InternalType* getContribContent() const;
43     void setContribContent(types::InternalType* v);
44
45     std::vector<double> getFrom(int link_number) const;
46     int getFromSize() const;
47     void setFrom(const std::vector<double>& from_content);
48     void clearFrom();
49     std::vector<double> getTo(int link_number) const;
50     void setTo(const std::vector<double>& to_content);
51     void clearTo();
52
53 private:
54     types::InternalType* contrib_content;
55     std::vector< std::vector<double> > from_vec;
56     std::vector< std::vector<double> > to_vec;
57 };
58
59 } /* namespace view_scilab */
60 } /* namespace org_scilab_modules_scicos */
61
62 #endif /* MODELADAPTER_HXX_ */