SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
smtk::common Namespace Reference

Classes used throughout the toolkit. More...

Namespaces

 update
 Classes to aid developers in migrating user content through schema upgrades.
 

Classes

class  Archive
 A class for handling SMTK archives. More...
 
class  Categories
 Represents the category constraints associated with smtk objects such as Attributes, Attribute Definitions, Attribute Items, Attribute Item Definitions, Tasks and Task Worklets. More...
 
class  Color
 Utilities for dealing with color conversion. More...
 
class  DateTime
 
class  DateTimeZonePair
 
class  Environment
 Cross-platform access to process environment variables. More...
 
class  EvaluationStack
 
class  EvaluationStacks
 
class  Extension
 Allow extension of operator functionality in separate libraries. More...
 
class  Factory
 A Factory is a class that constructs instances of registered classes which all inherit a common BaseType. More...
 
class  FileLocation
 
class  Generator
 Interface generator class. More...
 
class  GeneratorBase
 Base for all generators. More...
 
class  GeneratorType
 Base class for specific generator types. More...
 
class  HasSuperclass
 Determine whether the provided class (Class ) has a parent class. More...
 
class  InfixExpressionGrammar
 
struct  InfixFunction
 
class  InfixFunctions
 
struct  InfixOperator
 
class  InfixOperators
 
class  Instances
 The Instances class is used to manage instances of objects which share an inherited base type (the BaseType template parameter). More...
 
struct  Link
 A Link is an object that associates (or "links") two pieces of information together. More...
 
class  Links
 The Links class represents a collection of Link-s. More...
 
class  Managers
 
class  Observers
 An Observer is a functor that is called when certain actions are performed. More...
 
struct  parentClasses
 Invoke a functor on the named type and each of its parent types. More...
 
struct  parentClasses< Class, false >
 
struct  parentClasses< Class, true >
 
class  Paths
 Obtain filesystem paths relevant to SMTK. More...
 
class  PathsHelperMacOSX
 
class  PathsHelperUnix
 
class  PathsHelperWindows
 
class  PythonInterpreter
 A singleton class for encapsulating the embedded interpreter. More...
 
class  RangeDetector
 
struct  remove_cvref
 
class  RuntimeTypeContainer
 A container that can hold objects by their exact compile-time type as well as a commonly-inherited, run-time type. More...
 
class  Singleton
 This is a base class for objects that should have a single instance per process. More...
 
class  Status
 A return value for methods that need to indicate both success/failure and modification/stasis. More...
 
class  StringUtil
 
class  ThreadPool
 A basic thread pool that executes functors in separate threads. More...
 
class  TimeZone
 
class  TypeContainer
 A container for caching and retrieving instances of types. More...
 
class  TypeMap
 TypeMap is a generalized map for storing and accessing data using a key. More...
 
class  TypeMapBase
 The TypeMapBase class holds the storage and API for TypeMap. More...
 
class  TypeMapEntry
 A specialization of the TypeMapBase for a single type. More...
 
class  TypeMapEntryBase
 A common base class for properties of a given type. More...
 
class  UnionFind
 A disjoint-set structure for fast union-find operations. More...
 
struct  UnionFindSet
 Internal storage for the UnionFind class. More...
 
class  URL
 An RFC3986-compliant Uniform Resource Locator (URL). More...
 
class  UUID
 
class  UUIDGenerator
 
class  Version
 Run-time access to the version number in different formats. More...
 
class  VersionNumber
 A 2- or 3-component version number (i.e., major, minor, and optional patch). More...
 
struct  VisitorFunctor
 A template for accepting visitors with different return types. More...
 

Typedefs

typedef std::shared_ptr< ManagersManagersPtr
 
typedef std::set< smtk::common::UUIDUUIDs
 
typedef std::vector< smtk::common::UUIDUUIDArray
 
using SubsymbolVisitor = std::function< std::pair< double, bool >(const std::string &symbol)>
 
template<class... >
using void_t = void
 
typedef std::vector< UUIDArrayUUIDArrays
 

Enumerations

enum  InfixExpressionError {
  ERROR_NONE = 0, ERROR_INVALID_TOKEN = 1, ERROR_INVALID_SYNTAX = 2, ERROR_UNKNOWN_FUNCTION = 3,
  ERROR_UNKNOWN_OPERATOR = 4, ERROR_MATH_ERROR = 5, ERROR_SUBEVALUATION_FAILED = 6
}
 
enum  EvaluationOrder : int
 
enum  InstanceEvent { InstanceEvent::Managed, InstanceEvent::Unmanaged, InstanceEvent::Modified }
 Events that an instance-manager can observe. More...
 
enum  Processing { Processing::CONTINUE, Processing::STOP }
 An enumeration visitors use to control processing after they yield. More...
 
enum  Termination { Termination::NORMAL, Termination::EARLY }
 An enumeration returned by visitors indicating whether they terminated early. More...
 
enum  Visit { Visit::Continue, Visit::Halt }
 Return values common to most visitor methods. More...
 
enum  Visited { Visited::All, Visited::Some, Visited::Empty }
 Return value for functions/methods that accept visitors. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const DateTimeZonePair &dtz)
 
std::istream & operator>> (std::istream &is, DateTimeZonePair &dtz)
 
template<typename T >
double distance2 (const T *p0, const T *p1)
 Return the square of the Euclidean distance between p0 and p1.
 
TypeContainersingletons ()
 Return a container of singleton objects indexed by their type. More...
 
void finalizeSingletons ()
 Destroy the container holding all registered singleton objects. More...
 
template<typename Type >
std::string typeName ()
 Return the name of a class.
 
std::ostream & operator<< (std::ostream &stream, const URL &url)
 
std::ostream & operator<< (std::ostream &stream, const UUID &uid)
 Write a UUID to a stream (as a string).
 
std::istream & operator>> (std::istream &stream, UUID &uid)
 Read a UUID from a stream (as a string).
 
std::ostream & operator<< (std::ostream &stream, const VersionNumber &version)
 Write a VersionNumber to a stream (as a string).
 
std::istream & operator>> (std::istream &stream, VersionNumber &uid)
 Read a VersionNumber from a stream (as a string).
 

Variables

const char timezonespec_csv [35855]
 

Detailed Description

Classes used throughout the toolkit.

Typedef Documentation

◆ UUIDArray

typedef std::vector< UUID > smtk::common::UUIDArray

◆ UUIDs

typedef std::set< UUID > smtk::common::UUIDs

Enumeration Type Documentation

◆ InstanceEvent

Events that an instance-manager can observe.

Enumerator
Managed 

An instance of a managed class was added to the instance manager.

Unmanaged 

An instance of a managed class was removed from the instance manager.

Modified 

An instance has been marked modified (by an operation).

◆ Processing

An enumeration visitors use to control processing after they yield.

Values indicate whether processing should stop or continue. If visitation is threaded, note that returning STOP may not completely eliminate future calls to the visitor (on other threads).

In the future, other options may be added (e.g., STOP_ALL_THREADS vs STOP_CURRENT_THREAD).

Enumerator
CONTINUE 

Do not terminate early, continue invoking the functor.

STOP 

Terminate early; avoid invoking the functor again.

◆ Termination

An enumeration returned by visitors indicating whether they terminated early.

Enumerator
NORMAL 

Processing was not interrupted.

EARLY 

Processing was halted before iteration was complete.

◆ Visit

enum smtk::common::Visit
strong

Return values common to most visitor methods.

Enumerator
Continue 

Continue to visit items.

Halt 

Stop visiting items immediately.

◆ Visited

enum smtk::common::Visited
strong

Return value for functions/methods that accept visitors.

If your function or class-method accepts functors that may return Visit::Halt, then you should return an enumerant below to indicate whether iteration terminated early or not.

Enumerator
All 

The visitor was invoked on every item exhaustively.

Some 

A visitor signaled early termination.

Empty 

The were no values to visit.

Function Documentation

◆ finalizeSingletons()

SMTKCORE_EXPORT void smtk::common::finalizeSingletons ( )

Destroy the container holding all registered singleton objects.

The destructors of any contained objects will be called. This function is invoked at exit, but if your application needs to ensure objects are released before the other destructors are called (since no ordering is guaranteed for statically-allocated objects), you may call this at any time.

Libraries should not invoke this function; if your library uses this singleton container, your code run at exit should simply remove any stored objects rather than forcing all of the application's singletons to be destroyed.

◆ singletons()

SMTKCORE_EXPORT TypeContainer & smtk::common::singletons ( )

Return a container of singleton objects indexed by their type.

Because the index is based on the type of the object being contained (it is a checksum computed on the typename-string), there can be only zero or one objects of a given type in the container.

◆ typeHierarchy() [1/2]

template<typename Class , typename Container >
void smtk::common::typeHierarchy ( Container &  container)

Populate the container with the name of this class and its ancestors.

The Class template-parameter should be an object that uses the smtkTypeMacro() to define a Superclass type-alias, as this is how the inheritance hierarchy is traversed.

The version of this function that accepts 2 template parameters uses the second parameter to iterate over a partial hierarchy truncated at (not including) the StopAtType.

◆ typeHierarchy() [2/2]

template<typename Class , typename StopAtType , typename Container >
void smtk::common::typeHierarchy ( Container &  container)

Populate the container with the name of this class and its ancestors.

The Class template-parameter should be an object that uses the smtkTypeMacro() to define a Superclass type-alias, as this is how the inheritance hierarchy is traversed.

The version of this function that accepts 2 template parameters uses the second parameter to iterate over a partial hierarchy truncated at (not including) the StopAtType.