Epetra_Data: The Epetra Base Data Class. More...
#include <Epetra_Data.h>
Protected Member Functions | |
Constructor/Destructor Methods | |
Epetra_Data () | |
Epetra_Data Serial Constructor. | |
Epetra_Data (const Epetra_Data &Data) | |
Epetra_Data Copy Constructor. More... | |
virtual | ~Epetra_Data () |
Epetra_Data Destructor. | |
Reference-Counting Methods | |
void | IncrementReferenceCount () |
Increment reference count. | |
void | DecrementReferenceCount () |
Decrement reference count. | |
int | ReferenceCount () const |
Get reference count. | |
Protected Attributes | |
int | ReferenceCount_ |
Epetra_Data: The Epetra Base Data Class.
The Epetra_Data class is a base class for all Epetra Data Classes. It provides a mechanism so that one data object can be shared by multiple class instances. However, it is meant only to be used internally by another Epetra class. It does not provide smart pointer like capabilities. Incrementing and decrementing the reference count, and deleting the data class instance (if necessary), are duties of the Epetra class utilizing Epetra_Data.
All of Epetra_Data's methods are protected. This is because Epetra_Data should never be used directly. Rather, a class that derives from Epetra_Data should be used instead. For example, Epetra_MpiCommData or Epetra_BlockMapData.
DEVELOPER NOTES: (1) Any class that inherits from Epetra_Data may need to define an assignment operator, if it adds pointers. Epetra_Data doesn't have any, and so the default (compiler-generated) assignment operator is good enough. (2) The behavior of a derived class is left up to the implementer(s) of that class. As such, it cannot be assumed that just because a class inherits from Epetra_Data, that it supports copy construction or assignment, or that it will perform as expected.
|
protected |
Epetra_Data Copy Constructor.
Reference count will be set to 1 on new instance.