Xcos MVC: remove the "Deleted" adapter
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / Adapters.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 ADAPTERS_HXX_
14 #define ADAPTERS_HXX_
15
16 #include <vector>
17 #include <string>
18
19 namespace org_scilab_modules_scicos
20 {
21 namespace view_scilab
22 {
23
24 /*
25  * Shared data between adapters
26  */
27 class Adapters
28 {
29 public:
30     typedef enum
31     {
32         BLOCK_ADAPTER = 0,  //!< \see view_scilab::BlockAdapter
33         CPR_ADAPTER,        //!< \see view_scilab::CprAdapter
34         DIAGRAM_ADAPTER,    //!< \see view_scilab::DiagramAdapter
35         GRAPHIC_ADAPTER,    //!< \see view_scilab::GraphicAdapter
36         LINK_ADAPTER,       //!< \see view_scilab::LinkAdapter
37         MODEL_ADAPTER,      //!< \see view_scilab::ModelAdapter
38         PARAMS_ADAPTER,    //!< \see view_scilab::ParamsAdapter
39         SCS_ADAPTER,        //!< \see view_scilab::ScsAdapter
40         STATE_ADAPTER,      //!< \see view_scilab::StateAdapter
41         TEXT_ADAPTER,       //!< \see view_scilab::TextAdapter
42
43         INVALID_ADAPTER     //!< length of the enum is used to report error
44     } adapters_index_t;
45
46     static Adapters& instance();
47
48     adapters_index_t lookup_by_typename(const std::wstring& name);
49
50 private:
51
52     struct adapter_t
53     {
54         adapter_t(std::wstring n, adapters_index_t k) : name(n), kind(k) {};
55
56         inline bool operator<(const adapter_t& v) const
57         {
58             return name < v.name;
59         }
60
61         inline bool operator<(const std::wstring& v) const
62         {
63             return name < v;
64         }
65
66         std::wstring name;
67         adapters_index_t kind;
68     };
69     typedef std::vector<adapter_t> adapters_t;
70
71     Adapters();
72     ~Adapters();
73
74     static Adapters m_instance;
75     adapters_t adapters;
76 };
77
78 } /* namespace view_scilab */
79 } /* namespace org_scilab_modules_scicos */
80
81 #endif /* ADAPTERS_HXX_ */