regina::ShareableObject Class Referenceabstract
Engine Structure

Facilitates mirroring objects in the underlying C++ calculation engine using the various wrapper classes provided in the various external interfaces (such as the Python interface). More...

`#include <shareableobject.h>`

Inheritance diagram for regina::ShareableObject:

## Public Member Functions

Constructors and Destructors
| ShareableObject ()
| Default constructor that does nothing. More...
virtual | ~ShareableObject ()
| Default destructor that does nothing. More...
Input and Output
virtual void | writeTextShort (std::ostream &out) const =0
| Writes this object in short text format to the given output stream. More...
virtual void | writeTextLong (std::ostream &out) const
| Writes this object in long text format to the given output stream. More...
std::string | str () const
| Returns the output from writeTextShort() as a string. More...
std::string | toString () const
| A deprecated alias for str(), which returns the output from writeTextShort() as a string. More...
std::string | detail () const
| Returns the output from writeTextLong() as a string. More...
std::string | toStringLong () const
| A deprecated alias for detail(), which returns the output from writeTextLong() as a string. More...

## Detailed Description

Facilitates mirroring objects in the underlying C++ calculation engine using the various wrapper classes provided in the various external interfaces (such as the Python interface).

In the underlying C++ engine, a ShareableObject is an object that can be shared with the outside world. In the external interfaces, a ShareableObject is a vacuous wrapper that allows access to the data and methods of the corresponding object in the underlying engine.

See the various interface notes pages for more details regarding using classes derived from ShareableObject.

## Constructor & Destructor Documentation

regina::ShareableObject::ShareableObject | ( |  | ) |

inline

Default constructor that does nothing.

Python:
  Not present.

regina::ShareableObject::~ShareableObject | ( |  | ) |

inline virtual

Default destructor that does nothing.

## Member Function Documentation

std::string regina::ShareableObject::detail | ( |  | ) | const

Returns the output from writeTextLong() as a string.

Returns
  a long text representation of this object.

std::string regina::ShareableObject::str | ( |  | ) | const

Returns the output from writeTextShort() as a string.

Python:
  This implements the `__str__()` function.

Returns
  a short text representation of this object.

std::string regina::ShareableObject::toString | ( |  | ) | const

inline

A deprecated alias for str(), which returns the output from writeTextShort() as a string.

Deprecated:
  This routine has (at long last) been deprecated; use the simpler-to-type str() instead.

Returns
  a short text representation of this object.

std::string regina::ShareableObject::toStringLong | ( |  | ) | const

inline

A deprecated alias for detail(), which returns the output from writeTextLong() as a string.

Deprecated:
  This routine has (at long last) been deprecated; use the simpler-to-type detail() instead.

Returns
  a long text representation of this object.

void regina::ShareableObject::writeTextLong | ( | std::ostream & | out | ) | const

inline virtual

Writes this object in long text format to the given output stream.

The output should provide the user with all the information they could want. The output should be human-readable, should not contain extremely long lines (so users can read the output in a terminal), and should end with a final newline.

The default implementation of this routine merely calls writeTextShort() and adds a newline.

Python:
  The parameter out does not exist; standard output will be used.

Parameters

  out | the output stream to which to write.

Reimplemented in regina::NSnapPeaTriangulation, regina::NGroupPresentation, regina::NHomMarkedAbelianGroup, regina::NNormalSurfaceList, regina::NTetrahedron, regina::NSatRegion, regina::NVertex, regina::NEdge, regina::Dim2Triangle, regina::NTriangle, regina::NLayeredSolidTorus, regina::NHomGroupPresentation, regina::NGenericIsomorphism< dim >, regina::NGenericIsomorphism< 2 >, regina::NGenericIsomorphism< 3 >, regina::NTriangulation, regina::NComponent, regina::NTxICore, regina::NTriSolidTorus, regina::NAngleStructureList, regina::Dim2Edge, regina::NBoundaryComponent, regina::NLayeredChain, regina::Dim2Vertex, regina::Dim2Component, regina::NScript, regina::NAugTriSolidTorus, regina::NSpiralSolidTorus, regina::NSurfaceFilterProperties, regina::NLayeredTorusBundle, regina::NManifold, regina::NPlugTriSolidTorus, regina::NMatrixInt, regina::NBlockedSFSTriple, regina::NPluggedTorusBundle, regina::Dim2Triangulation, regina::NSurfaceSubset, regina::NLayeredLensSpace, regina::NLayeredLoop, regina::NFileInfo, regina::NBlockedSFSLoop, regina::NSnappedBall, regina::NBlockedSFSPair, regina::Dim2BoundaryComponent, regina::NTrivialTri, regina::NL31Pillow, regina::NLayeredChainPair, regina::NText, regina::NSurfaceFilterCombination, and regina::NBlockedSFS.

virtual void regina::ShareableObject::writeTextShort | ( | std::ostream & | out | ) | const

pure virtual

Writes this object in short text format to the given output stream.

The output should be human-readable, should fit on a single line, and should not end with a newline.

Python:
  The parameter out does not exist; standard output will be used.

Parameters

  out | the output stream to which to write.

Implemented in regina::NSnapPeaTriangulation, regina::NGroupPresentation, regina::NHomMarkedAbelianGroup, regina::NNormalSurface, regina::NNormalSurfaceList, regina::NTetrahedron, regina::NGroupExpression, regina::NSatRegion, regina::NSatLayering, regina::NHomologicalData, regina::NVertex, regina::NSatReflectorStrip, regina::NEdge, regina::Dim2Triangle, regina::NTriangle, regina::NSatCube, regina::NMarkedAbelianGroup, regina::NHomGroupPresentation, regina::NAbelianGroup, regina::NGenericIsomorphism< dim >, regina::NGenericIsomorphism< 2 >, regina::NGenericIsomorphism< 3 >, regina::NTriangulation, regina::NSatTriPrism, regina::NComponent, regina::NTxICore, regina::NProgress, regina::NAngleStructureList, regina::Dim2Edge, regina::NAngleStructure, regina::NSurfaceFilter, regina::NBoundaryComponent, regina::NPDF, regina::Dim2Vertex, regina::Dim2Component, regina::NScript, regina::NSignature, regina::NManifold, regina::NSatLST, regina::NMatrixInt, regina::NCusp, regina::Dim2Triangulation, regina::NSurfaceSubset, regina::NStandardTriangulation, regina::NProgressManager, regina::NPillowTwoSphere, regina::NFileInfo, regina::Dim2BoundaryComponent, regina::NSnappedTwoSphere, regina::NText, regina::NSatMobius, and regina::NContainer.

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

- shareableobject.h

Copyright © 1999-2014, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).