# Hurricane Documentation

# Hurricane VLSI Database

List of all members
Hurricane::SharedProperty Class Reference

SharedProperty description (API) More...

Inheritance diagram for Hurricane::SharedProperty:
[legend]

## Additional Inherited Members

Public Member Functions inherited from Hurricane::Property
virtual void | destroy ()
virtual Name | getName () const =0

## Detailed Description

SharedProperty description (API)

# Introduction

Shared properties can be attached to many objects of the data base.

When a new property is created, it is not yet assigned to any particular object. It becomes effectively the property of an object after the call dbo->Put(property). The property then receives a message OnCapturedBy whose argument is the additional owner. From that time onwards, this object becomes partially responsible of the future of the property.

What can happen then ?

If the property is destroyed : The property being shared, it informs its owners of its deletion. Each of those owners detaches it from the list of its properties. If the object is a quark and that property is the last one it owns, it automatically deletes itself.

If a property of same name already exist : Two properties with the same name can't cohabit, the older one is released by the object which receives the message OnReleasedBy from that old property and proceeds as required according to the type of property.

If the property is attached to a new owner : Being shared, the property is simply captured by this new owner.

If one of the owners of the property is destroyed : The properties captured by this object are then released. The future of those properties is here completely managed by the different messages OnReleasedBy which are associated to them. If the deleted object is the last owner of a shared property, this one is automatically deleted.

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

- Property.h