# Hurricane Documentation

# Hurricane VLSI Database

List of all members | Public Types | Public Member Functions | Static Public Member Functions
Hurricane::Plug Class Reference

Plug description (API) More...

Inheritance diagram for Hurricane::Plug:
[legend]

## Public Types

typedef Component | Inherit
Public Types inherited from Hurricane::Component
typedef Go | Inherit

## Public Member Functions

Instance * | getInstance () const
Net * | getMasterNet () const
bool | isConnected () const
void | setNet (Net *net)
Public Member Functions inherited from Hurricane::Component
Net * | getNet () const
Rubber * | getRubber () const
Hook * | getBodyHook ()
virtual Hooks | getHooks () const
Components | getConnexComponents () const
Components | getSlaveComponents () const
Public Member Functions inherited from Hurricane::Go
bool | isMaterialized () const
Public Member Functions inherited from Hurricane::DBo
Property * | getProperty (const Name &) const
Properties | getProperties () const
bool | hasProperty () const
void | put (Property *)
void | remove (Property *)
void | removeProperty (const Name &)
void | clearProperties ()

## Static Public Member Functions

static PlugFilter | getIsConnectedFilter ()
static PlugFilter | getIsUnconnectedFilter ()
Static Public Member Functions inherited from Hurricane::Component
static ComponentFilter | getIsUnderFilter (const Box &area)
Static Public Member Functions inherited from Hurricane::Go
static bool | autoMaterializationIsDisabled ()
static void | enableAutoMaterialization ()
static void | disableAutoMaterialization ()

## Detailed Description

Plug description (API)

# Introduction

A plug can be assimilated to a "logical port instance" : it designates both the concerned instance and the net of the model cell instanciated to which it is connected. This net, which must be an external net, will be named "master net" because it is a net of the instance master cell (notice that this net can be asimilated to a "logical port").

A plug is unique, that is, for a given instance there is one and only one plug refering to a given master net.

Caution: When created, an instance creates all plugs corresponding to
  the external nets of its master cell. So, some plugs may exist without being connected. Plugs are the only components which have this characteristic.

Remarks
  Plugs being completely managed by the system, you can't define sub-types of plugs.

# Constructors & Destructors

Plugs being completely managed by the system, there is no constructor nor destructor provided.

# Predefined filters

Hurricane::Plug::getIsConnectedFilter Hurricane::Plug::getIsUnconnectedFilter

## Member Typedef Documentation

## ◆ Inherit

Hurricane::Plug::Inherit

Useful for calling upon methods of the base class without knowing it.

## Member Function Documentation

## ◆ getInstance()

Instance * Hurricane::Plug::getInstance | ( |  | ) | const

inline

Returns: the instance to which belongs the plug.

## ◆ getMasterNet()

Net * Hurricane::Plug::getMasterNet | ( |  | ) | const

inline

Returns: the external net referenced by the plug in the master cell of its instance.

Remarks
  Don't mistake with getNet() which returns the net owning the plug (or NULL if is unconnected).

## ◆ getIsConnectedFilter()

PlugFilter Hurricane::Plug::getIsConnectedFilter | ( |  | ) |

static

Returns: a filter for selecting only connected plugs.

## ◆ getIsUnconnectedFilter()

PlugFilter Hurricane::Plug::getIsUnconnectedFilter | ( |  | ) |

static

Returns: a filter for selecting only unconnected plugs.

## ◆ isConnected()

bool Hurricane::Plug::isConnected | ( |  | ) | const

inline

Returns: true if the plug is connected, else false.

Remarks
  A plug is connected if the call upon getNet() doesn't return NULL.

References Hurricane::Component::getNet().

## ◆ setNet()

void Hurricane::Plug::setNet | ( | Net * | net | ) |

This method allows to connect or change the net of a plug.

Caution: An exception is thrown if the net owner cell differs from the
  plug owner cell, or if there are components (contact, segments, ...) currently anchored on the plug.

Remarks
  The properties attached to this plug and its occurences are left unchanged.

The documentation for this class was generated from the following files:

- Plug.h
- Plug.dox