source: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal.cpp @ 44

Last change on this file since 44 was 44, checked in by rosiere, 17 years ago

Modification des classes d'encapsulation des interfaces.
Stable sur tous les composants actuels

File size: 3.9 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/include/Signal.h"
9
10namespace morpheo              {
11namespace behavioural          {
12
13  Signal::Signal  (string          name         ,
14                   direction_t     direction    ,
15                   uint32_t        size         ,
16                   presence_port_t presence_port):
17    _name          (name         ),
18    _direction     (direction    ),
19    _size          (size         ),
20    _presence_port ((direction==INTERNAL)?PORT_VHDL_NO_TESTBENCH_NO:presence_port)
21  {
22    log_printf(FUNC,Behavioural,"Signal","Begin");
23    _is_allocate   = false;
24    _is_map        = false;
25    _connect_from_signal = NULL;
26    _connect_to_signal   = NULL;
27    _sc_signal     = NULL;
28    _sc_signal_map = NULL;
29    _type_info     = UNKNOW;
30#ifdef VHDL_TESTBENCH
31    _list_value    = new list<string>;
32#endif
33    log_printf(FUNC,Behavioural,"Signal","End");
34  };
35
36  Signal::Signal  (const Signal & signal):
37    _name          (signal._name         ),
38    _direction     (signal._direction    ),
39    _size          (signal._size         ),
40    _presence_port (signal._presence_port)
41  {
42    log_printf(FUNC,Behavioural,"Signal (copy)","Begin");
43    _is_allocate= signal._is_allocate;
44    _is_map     = signal._is_map    ;
45    _connect_from_signal = signal._connect_from_signal;
46    _connect_to_signal   = signal._connect_to_signal;
47    _sc_signal     = signal._sc_signal    ;
48    _sc_signal_map = signal._sc_signal_map;
49    _type_info  = signal._type_info ;
50#ifdef VHDL_TESTBENCH
51    _list_value = signal._list_value;
52#endif
53    log_printf(FUNC,Behavioural,"Signal (copy)","End");
54  };
55
56  Signal::~Signal ()
57  {
58    log_printf(FUNC,Behavioural,"~Signal","Begin");
59
60//     if (_is_allocate == true)
61//       switch (_direction)
62//      {
63//      case IN :
64//        {
65//          switch (_type_info)
66//            {
67//            case BOOL     : {delete (static_cast<sc_in  <bool    > *>(_sc_signal)); break;}
68//            case UINT8_T  : {delete (static_cast<sc_in  <uint8_t > *>(_sc_signal)); break;}
69//            case UINT16_T : {delete (static_cast<sc_in  <uint16_t> *>(_sc_signal)); break;}
70//            case UINT32_T : {delete (static_cast<sc_in  <uint32_t> *>(_sc_signal)); break;}
71//            case UINT64_T : {delete (static_cast<sc_in  <uint64_t> *>(_sc_signal)); break;}
72//            default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.")); break;}
73//            }
74//          break;
75//        }
76//      case OUT :
77//        {
78//          switch (_type_info)
79//            {
80//            case BOOL     : {delete (static_cast<sc_out <bool    > *>(_sc_signal)); break;}
81//            case UINT8_T  : {delete (static_cast<sc_out <uint8_t > *>(_sc_signal)); break;}
82//            case UINT16_T : {delete (static_cast<sc_out <uint16_t> *>(_sc_signal)); break;}
83//            case UINT32_T : {delete (static_cast<sc_out <uint32_t> *>(_sc_signal)); break;}
84//            case UINT64_T : {delete (static_cast<sc_out <uint64_t> *>(_sc_signal)); break;}
85//            default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.")); break;}
86//            }
87//          break;
88//        }
89//      case INTERNAL :
90//        {
91//          switch (_type_info)
92//            {
93//            case BOOL     : {delete (static_cast<sc_sc_signal <bool    > *>(_sc_signal)); break;}
94//            case UINT8_T  : {delete (static_cast<sc_sc_signal <uint8_t > *>(_sc_signal)); break;}
95//            case UINT16_T : {delete (static_cast<sc_sc_signal <uint16_t> *>(_sc_signal)); break;}
96//            case UINT32_T : {delete (static_cast<sc_sc_signal <uint32_t> *>(_sc_signal)); break;}
97//            case UINT64_T : {delete (static_cast<sc_sc_signal <uint64_t> *>(_sc_signal)); break;}
98//            default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.")); break;}
99//            }
100//          break;
101//        }
102//      default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : direction unknow.")); break;}
103//      }
104
105#ifdef VHDL_TESTBENCH
106    delete _list_value;
107#endif
108    log_printf(FUNC,Behavioural,"~Signal","End");
109  };
110
111}; // end namespace behavioural         
112}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.