Regina 7.4 Calculation Engine
packet.h File Reference

Deals with packets of information that form the working data objects. More...

#include <iostream>
#include <iterator>
#include <map>
#include <memory>
#include <set>
#include "regina-core.h"
#include "core/output.h"
#include "file/fileformat.h"
#include "packet/packettype.h"
#include "utilities/base64.h"

Classes

class  regina::Packet
 Represents a packet of information that may be individually edited or operated upon. More...
 
class  regina::Packet::PacketChangeSpan
 An object that facilitates firing packetToBeChanged() and packetWasChanged() events. More...
 
class  regina::PacketOf< Held >
 A packet that stores a mathematical object of type Held. More...
 
class  regina::PacketData< Held >
 A lightweight helper class that allows an object of type Held to connect with the wrapped packet class that contains it. More...
 
class  regina::PacketData< Held >::PacketChangeSpan
 An object that facilitates firing packetToBeChanged() and packetWasChanged() events. More...
 
class  regina::ChildIterator< const_ >
 A forward iterator for iterating through all immediate children of a given packet. More...
 
class  regina::SubtreeIterator< const_ >
 A forward iterator for iterating through the entire packet subtree rooted at a given packet. More...
 
class  regina::PacketChildren< const_ >
 A lightweight object that gives access to all immediate children of a given packet. More...
 
class  regina::PacketDescendants< const_ >
 A lightweight object that gives access to all strict descendants of a given packet. More...
 
class  regina::PacketShell
 Gives access to the final remains of a packet that is in the process of being destroyed. More...
 
class  regina::PacketListener
 An object that can be registered to listen for packet events. More...
 

Namespaces

namespace  regina
 Contains the entire Regina calculation engine.
 

Macros

#define REGINA_PACKET(id, name)
 Defines various constants and virtual functions for a subclass of Packet.
 

Enumerations

enum class  regina::PacketHeldBy { regina::None = 0 , regina::Packet = 1 , regina::SnapPea = 2 }
 Internal constants that support wrapped packets. More...
 

Functions

template<typename Held >
std::shared_ptr< PacketOf< Held > > regina::make_packet (Held &&src)
 Converts a temporary Held object into a new wrapped packet, without making a deep copy.
 
template<typename Held >
std::shared_ptr< PacketOf< Held > > regina::make_packet (Held &&src, const std::string &label)
 Converts a temporary Held object into a new wrapped packet, without making a deep copy.
 
template<typename Held , typename... Args>
std::shared_ptr< PacketOf< Held > > regina::make_packet (std::in_place_t, Args &&... args)
 Creates a new packet that wraps a Held object, passing the given arguments to the Held constructor.
 
template<typename Held >
std::shared_ptr< PacketOf< Held > > regina::make_packet ()
 Creates a new packet that wraps a default-constructed Held object.
 
template<typename Held >
Held & regina::static_packet_cast (Packet &p)
 Casts a reference from Packet to Held, assuming that the given packet is actually a PacketOf<Held>.
 
template<typename Held >
const Held & regina::static_packet_cast (const Packet &p)
 Casts a const reference from Packet to Held, assuming that the given packet is actually a PacketOf<Held>.
 
std::shared_ptr< Packetregina::open (const char *filename)
 Reads a Regina data file, and returns the corresponding packet tree.
 
std::shared_ptr< Packetregina::open (std::istream &in)
 Reads a Regina data file from the given input stream, and returns the corresponding packet tree.
 

Detailed Description

Deals with packets of information that form the working data objects.