Version: 9.16.0
CalciumPortTraits.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, 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
35
36// PROVIDES PORT TRAITS
37template <class T> struct UnknownProvidesPortType {};
38
39template <class T> struct ProvidesPortTraits {
41};
42struct integer {};
43template <> struct ProvidesPortTraits<integer> {
44 typedef calcium_integer_port_provides PortType;
45};
46template <> struct ProvidesPortTraits<int> {
47 typedef calcium_intc_port_provides PortType;
48};
49template <> struct ProvidesPortTraits<long> {
50 typedef calcium_long_port_provides PortType;
51};
52template <> struct ProvidesPortTraits<float> {
53 typedef calcium_real_port_provides PortType;
54};
55template <> struct ProvidesPortTraits<double> {
56 typedef calcium_double_port_provides PortType;
57};
58template <> 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
63struct cplx {};
64template <> 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
69struct str {};
70template <> 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
75struct intc {};
76template <> struct ProvidesPortTraits<intc> {
77 typedef calcium_intc_port_provides PortType;
78};
79
80
81template < typename T > struct StarTrait { typedef T NonStarType; };
82template < typename T > struct StarTrait< T * > { typedef T NonStarType; };
83
84
85// USES PORT TRAITS
86template <class T> struct UnknownUsesPortType {};
87template <class T> struct UsesPortTraits {
89};
90template <> struct UsesPortTraits<integer> {
91 typedef calcium_integer_port_uses PortType;
92};
93template <> struct UsesPortTraits<int> {
95};
96template <> struct UsesPortTraits<long> {
98};
99template <> struct UsesPortTraits<float> {
101};
102template <> struct UsesPortTraits<double> {
104};
105template <> struct UsesPortTraits<str> {
107};
108template <> struct UsesPortTraits<bool> {
110};
111template <> struct UsesPortTraits<cplx> {
113};
114template <> struct UsesPortTraits<intc> {
116};
117
118#endif
Definition: calcium_complex_port_uses.hxx:44
Definition: calcium_double_port_uses.hxx:44
Definition: calcium_intc_port_uses.hxx:43
Definition: calcium_logical_port_uses.hxx:44
Definition: calcium_long_port_uses.hxx:43
Definition: calcium_real_port_uses.hxx:45
Definition: calcium_string_port_uses.hxx:44
calcium_logical_port_provides PortType
Definition: CalciumPortTraits.hxx:59
calcium_complex_port_provides PortType
Definition: CalciumPortTraits.hxx:65
calcium_double_port_provides PortType
Definition: CalciumPortTraits.hxx:56
calcium_real_port_provides PortType
Definition: CalciumPortTraits.hxx:53
calcium_intc_port_provides PortType
Definition: CalciumPortTraits.hxx:47
calcium_intc_port_provides PortType
Definition: CalciumPortTraits.hxx:77
calcium_integer_port_provides PortType
Definition: CalciumPortTraits.hxx:44
calcium_long_port_provides PortType
Definition: CalciumPortTraits.hxx:50
calcium_string_port_provides PortType
Definition: CalciumPortTraits.hxx:71
Definition: CalciumPortTraits.hxx:39
UnknownProvidesPortType< T > PortType
Definition: CalciumPortTraits.hxx:40
T NonStarType
Definition: CalciumPortTraits.hxx:82
Definition: CalciumPortTraits.hxx:81
T NonStarType
Definition: CalciumPortTraits.hxx:81
Definition: CalciumPortTraits.hxx:37
Definition: CalciumPortTraits.hxx:86
calcium_logical_port_uses PortType
Definition: CalciumPortTraits.hxx:109
calcium_complex_port_uses PortType
Definition: CalciumPortTraits.hxx:112
calcium_double_port_uses PortType
Definition: CalciumPortTraits.hxx:103
calcium_real_port_uses PortType
Definition: CalciumPortTraits.hxx:100
calcium_intc_port_uses PortType
Definition: CalciumPortTraits.hxx:94
calcium_intc_port_uses PortType
Definition: CalciumPortTraits.hxx:115
calcium_integer_port_uses PortType
Definition: CalciumPortTraits.hxx:91
calcium_long_port_uses PortType
Definition: CalciumPortTraits.hxx:97
calcium_string_port_uses PortType
Definition: CalciumPortTraits.hxx:106
Definition: CalciumPortTraits.hxx:87
UnknownUsesPortType< T > PortType
Definition: CalciumPortTraits.hxx:88
Definition: CalciumPortTraits.hxx:63
Definition: CalciumPortTraits.hxx:75
Definition: CalciumPortTraits.hxx:42
Definition: CalciumPortTraits.hxx:69