torc-master
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Extern.hpp
Go to the documentation of this file.
1
// Torc - Copyright 2011-2013 University of Southern California. All Rights Reserved.
2
// $HeadURL$
3
// $Id$
4
5
// This program is free software: you can redistribute it and/or modify it under the terms of the
6
// GNU General Public License as published by the Free Software Foundation, either version 3 of the
7
// License, or (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
10
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
11
// the GNU General Public License for more details.
12
//
13
// You should have received a copy of the GNU General Public License along with this program. If
14
// not, see <http://www.gnu.org/licenses/>.
15
16
#ifndef TORC_GENERIC_EXTERN_HPP
17
#define TORC_GENERIC_EXTERN_HPP
18
19
//BOOST
20
#ifdef GENOM_SERIALIZATION
21
#include <boost/serialization/access.hpp>
22
#endif //GENOM_SERIALIZATION
23
namespace
torc {
24
namespace
generic {
25
26
/**
27
* @brief Used to implement external object referencing.
28
*
29
* The Extern interface is used by objects to create placeholders for objects that could not be
30
* found by the Linker. In itself, the class is pretty simple and uses a single boolean inSource to
31
* indicate whether an object is a real object or a place holder. Simplistically, extern objects
32
* are used to represent libraries, cells, views and ports declared using the EDIF (extern ...)
33
* syntax. However, in case of multifile parsing, the Linker will try to remove externs from the
34
* design hierarchy with newly discovered items.
35
*/
36
class
Extern
{
37
#ifdef GENOM_SERIALIZATION
38
friend
class
boost::serialization::access;
39
#endif
40
41
public
:
42
/**
43
* Get whether the item is an extern(placeholder) or an actual item.
44
*
45
* @return True if extern, false otherwise
46
*/
47
inline
bool
getIsExtern
()
const
;
48
49
/**
50
* Get whether the item is an extern(placeholder) or an actual item.
51
*
52
* @return True if extern, false otherwise
53
*/
54
inline
bool
isExtern
()
const
;
55
56
/**
57
* Set whether an item is extern or not.
58
*
59
* @param[in] isExtern True if extern, false otherwise
60
*/
61
void
setIsExtern
(
bool
inIsExtern);
62
63
protected
:
64
Extern
();
65
66
public
:
67
virtual
~Extern
()
throw
();
68
69
private
:
70
Extern
(
const
Extern
& source);
71
72
Extern
&
operator=
(
const
Extern
& source);
73
74
private
:
75
#ifdef GENOM_SERIALIZATION
76
template
<
class
Archive>
void
serialize(Archive& ar,
unsigned
int
);
77
#endif //GENOM_SERIALIZATION
78
bool
mIsExtern
;
79
};
80
81
/**
82
* Get whether the item is an extern(placeholder) or an actual item.
83
*
84
* @return True if extern, false otherwise
85
*/
86
inline
bool
Extern::getIsExtern
()
const
{
87
return
mIsExtern
;
88
}
89
90
/**
91
* Get whether the item is an extern(placeholder) or an actual item.
92
*
93
* @return True if extern, false otherwise
94
*/
95
inline
bool
Extern::isExtern
()
const
{
96
return
mIsExtern
;
97
}
98
99
}
// namespace generic
100
}
// namespace torc
101
102
#endif // TORC_GENERIC_EXTERN_HPP
torc::generic::Extern::isExtern
bool isExtern() const
Definition:
Extern.hpp:95
torc::generic::Extern::Extern
Extern()
Definition:
Extern.cpp:39
torc::generic::Extern::~Extern
virtual ~Extern()
Definition:
Extern.cpp:41
torc::generic::Extern::setIsExtern
void setIsExtern(bool inIsExtern)
Definition:
Extern.cpp:35
torc::generic::Extern::operator=
Extern & operator=(const Extern &source)
torc::generic::Extern::getIsExtern
bool getIsExtern() const
Definition:
Extern.hpp:86
torc::generic::Extern::mIsExtern
bool mIsExtern
Definition:
Extern.hpp:78
torc::generic::Extern
Used to implement external object referencing.
Definition:
Extern.hpp:36
src
torc
generic
Extern.hpp
Generated on Thu Dec 18 2014 16:30:36 for torc-master by
1.8.6