Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
CalciumPortTraits.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
23
// File : CalciumPortTraits.hxx
24
// Author : Eric Fayolle (EDF)
25
// Module : KERNEL
26
// Modified by : $LastChangedBy$
27
// Date : $LastChangedDate: 2007-02-28 15:26:32 +0100 (mer, 28 fév 2007) $
28
// Id : $Id$
29
//
30
#ifndef _PORT_TRAITS_HXX_
31
#define _PORT_TRAITS_HXX_
32
33
#include "
Superv_Component_i.hxx
"
34
#include "
calcium_port_factory.hxx
"
35
36
// PROVIDES PORT TRAITS
37
template
<
class
T>
struct
UnknownProvidesPortType
{};
38
39
template
<
class
T>
struct
ProvidesPortTraits
{
40
typedef
UnknownProvidesPortType<T>
PortType
;
41
};
42
struct
integer
{};
43
template
<>
struct
ProvidesPortTraits
<
integer
> {
44
typedef
calcium_integer_port_provides
PortType
;
45
};
46
template
<>
struct
ProvidesPortTraits
<int> {
47
typedef
calcium_intc_port_provides
PortType
;
48
};
49
template
<>
struct
ProvidesPortTraits
<long> {
50
typedef
calcium_long_port_provides
PortType
;
51
};
52
template
<>
struct
ProvidesPortTraits
<float> {
53
typedef
calcium_real_port_provides
PortType
;
54
};
55
template
<>
struct
ProvidesPortTraits
<double> {
56
typedef
calcium_double_port_provides
PortType
;
57
};
58
template
<>
struct
ProvidesPortTraits
<
bool
> {
59
typedef
calcium_logical_port_provides
PortType
;
60
};
61
// Définition du type cplx pour disciminer ce type de port
62
// de celui du float
63
struct
cplx
{};
64
template
<>
struct
ProvidesPortTraits
<
cplx
> {
65
typedef
calcium_complex_port_provides
PortType
;
66
};
67
// Définition du type str pour obtenir le type de port
68
// correspondant
69
struct
str
{};
70
template
<>
struct
ProvidesPortTraits
<
str
> {
71
typedef
calcium_string_port_provides
PortType
;
72
};
73
// Définition du type intc pour obtenir le type de port
74
// correspondant
75
struct
intc
{};
76
template
<>
struct
ProvidesPortTraits
<
intc
> {
77
typedef
calcium_intc_port_provides
PortType
;
78
};
79
80
81
template
<
typename
T >
struct
StarTrait
{
typedef
T
NonStarType
; };
82
template
<
typename
T >
struct
StarTrait
< T * > {
typedef
T
NonStarType
; };
83
84
85
// USES PORT TRAITS
86
template
<
class
T>
struct
UnknownUsesPortType
{};
87
template
<
class
T>
struct
UsesPortTraits
{
88
typedef
UnknownUsesPortType<T>
PortType
;
89
};
90
template
<>
struct
UsesPortTraits
<
integer
> {
91
typedef
calcium_integer_port_uses
PortType
;
92
};
93
template
<>
struct
UsesPortTraits
<int> {
94
typedef
calcium_intc_port_uses
PortType
;
95
};
96
template
<>
struct
UsesPortTraits
<long> {
97
typedef
calcium_long_port_uses
PortType
;
98
};
99
template
<>
struct
UsesPortTraits
<float> {
100
typedef
calcium_real_port_uses
PortType
;
101
};
102
template
<>
struct
UsesPortTraits
<double> {
103
typedef
calcium_double_port_uses
PortType
;
104
};
105
template
<>
struct
UsesPortTraits
<
str
> {
106
typedef
calcium_string_port_uses
PortType
;
107
};
108
template
<>
struct
UsesPortTraits
<
bool
> {
109
typedef
calcium_logical_port_uses
PortType
;
110
};
111
template
<>
struct
UsesPortTraits
<
cplx
> {
112
typedef
calcium_complex_port_uses
PortType
;
113
};
114
template
<>
struct
UsesPortTraits
<
intc
> {
115
typedef
calcium_intc_port_uses
PortType
;
116
};
117
118
#endif
src
DSC
DSC_User
Datastream
Calcium
CalciumPortTraits.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS