Regina 7.0 Calculation Engine
Classes | Namespaces | Macros | Enumerations | Functions
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::ChangeEventSpan
 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 >::ChangeEventSpan
 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. More...
 

Enumerations

enum  regina::PacketHeldBy { regina::HELD_BY_NONE = 0 , regina::HELD_BY_PACKET = 1 , regina::HELD_BY_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. More...
 
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. More...
 
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. More...
 
template<typename Held >
std::shared_ptr< PacketOf< Held > > regina::make_packet ()
 Creates a new packet that wraps a default-constructed Held object. More...
 
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>. More...
 
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>. More...
 
std::shared_ptr< Packet > regina::open (const char *filename)
 Reads a Regina data file, and returns the corresponding packet tree. More...
 
std::shared_ptr< Packet > regina::open (std::istream &in)
 Reads a Regina data file from the given input stream, and returns the corresponding packet tree. More...
 
bool regina::operator== (const Packet *packet, PacketShell shell)
 Identifies if the given shell refers to the given packet. More...
 
bool regina::operator!= (const Packet *packet, PacketShell shell)
 Identifies if the given shell does not refer to the given packet. More...
 

Detailed Description

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


Copyright © 1999-2021, 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@maths.uq.edu.au).