Ion
|
CallList contains a list of function calls to execute. More...
#include "calllist.h"
Public Member Functions | |
CallList () | |
template<typename ReturnType , class... Args> | |
void | Add (ReturnType(*func)(Args...), Args &&...args) |
Adds a function call to the list of calls to execute, overloaded for non-member (free) functions. More... | |
template<typename Func , class... Args> | |
void | Add (Func &&func, Args &&...args) |
Adds a function call to the list of calls to execute, overloaded for std::functions. More... | |
void | Execute () |
Executes the stored calls. More... | |
void | Clear () |
Clears the set of calls. More... | |
template<typename Func > | |
FunctionCall< Func > * | GetCall (size_t i) |
Returns the ith FunctionCall in this list. More... | |
const AllocatorPtr & | GetAllocator () const |
Returns the Allocator that was used for the instance. More... | |
const AllocatorPtr & | GetNonNullAllocator () const |
Return our allocator, or the default allocator if the instance was declared on the stack. More... | |
const AllocatorPtr & | GetAllocatorForLifetime (AllocationLifetime lifetime) const |
Convenience function that returns the Allocator to use to allocate an object with a specific lifetime. More... | |
void * | operator new (size_t size) |
The standard no-parameter new operator uses the default Allocator. More... | |
void * | operator new (size_t size, AllocationLifetime lifetime) |
This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime. More... | |
void * | operator new (size_t size, const AllocatorPtr &allocator) |
This overloaded version of the new operator takes the Allocator to use directly as a parameter. More... | |
void * | operator new (size_t size, const AllocatorPtr &allocator, void *ptr) |
Special operator new for using placement new with Allocatables. More... | |
void * | operator new (size_t size, void *ptr) |
The placement new operator is defined conventionally. More... | |
void | operator delete (void *ptr) |
Define the delete operator to use specialized functions dealing with an Allocator. More... | |
void | operator delete (void *ptr, AllocationLifetime lifetime) |
Windows requires these (or it issues C4291 warnings). More... | |
void | operator delete (void *ptr, const AllocatorPtr &allocator) |
void | operator delete (void *ptr, void *ptr2) |
The placement delete operator does nothing, as usual. More... | |
int | GetRefCount () const |
GetRefCount() is part of the interface necessary for SharedPtr. More... | |
CallList contains a list of function calls to execute.
Individual calls and in particular their arguments can be modified directly.
Example usage: Value v; CallListPtr cl(new CallList()); ///< Member function int Value::SetInt(int i) {...}. cl->Add(std::bind(&ValueStorage::SetInt, &v, std::placeholders::_1), 4); ///< Free function void SetInt(int i) {...}. cl->Add(SetInt, 3); ///< Same free function, but using a bind (somewhat less efficient). cl->Add(std::bind(SetInt, std::placeholders::_1), 4); ///< Returns the value of the first argument of the 2nd call. cl->GetCall<int(int)>(2)->GetArg<0>(); ///< Sets the first argument of the 0th call. cl->GetCall<int(int)>(0)->SetArg<0>(1); ///< Sets the first argument of the 1st call. cl->GetCall<void(int)>(1)->SetArg<0>(2); ///< Sets the first argument of the 2nd call. cl->GetCall<void(int)>(2)->SetArg<0>(3); cl->Execute(); ///< Execute the calls. cl->Clear(); ///< Clears the set of calls.
Definition at line 53 of file calllist.h.
ion::base::CallList::CallList | ( | ) |
Definition at line 23 of file calllist.cc.
|
inline |
Adds a function call to the list of calls to execute, overloaded for non-member (free) functions.
This version of Add() takes a free function directly, which avoids the overhead of a std::function, but only works for free functions.
Definition at line 62 of file calllist.h.
|
inline |
Adds a function call to the list of calls to execute, overloaded for std::functions.
This allows passing more general functions than the above, at the cost of calling through a std::function.
Definition at line 72 of file calllist.h.
void ion::base::CallList::Clear | ( | ) |
Clears the set of calls.
Definition at line 35 of file calllist.cc.
void ion::base::CallList::Execute | ( | ) |
Executes the stored calls.
Definition at line 28 of file calllist.cc.
|
inlineinherited |
Returns the Allocator that was used for the instance.
This will be NULL if the instance was declared on the stack or created with normal placement new.
Definition at line 68 of file allocatable.h.
References allocator_.
Referenced by ion::base::DataContainer::CreateAndCopy(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), and ion::text::DynamicFontImage::FindImageDataIndex().
|
inlineinherited |
Convenience function that returns the Allocator to use to allocate an object with a specific lifetime.
Definition at line 78 of file allocatable.h.
References ion::base::Allocator::GetAllocatorForLifetime().
Referenced by ion::text::BasicBuilder::BuildVertexData(), ion::text::OutlineBuilder::BuildVertexData(), ion::gfxutils::ShaderManager::CreateShaderProgram(), ion::text::DynamicFontImage::FindContainingImageDataIndex(), ion::text::DynamicFontImage::FindImageDataIndex(), ion::gfx::Renderer::Renderer(), and ion::gfx::UpdateStateTable().
|
inline |
Returns the ith FunctionCall in this list.
If the index is invalid or the template arguments for the function signature are incorrect, this returns NULL. This must be called with the function signature as the template argument, e.g., GetCall<void(int)>().
Definition at line 89 of file calllist.h.
|
inlineinherited |
Return our allocator, or the default allocator if the instance was declared on the stack.
Definition at line 72 of file allocatable.h.
References allocator_, and ion::base::AllocationManager::GetNonNullAllocator().
|
inlineinherited |
GetRefCount() is part of the interface necessary for SharedPtr.
Definition at line 34 of file shareable.h.
Referenced by ion::base::Notifier::RemoveReceiver().
|
inlineinherited |
Define the delete operator to use specialized functions dealing with an Allocator.
Definition at line 109 of file allocatable.h.
|
inlineinherited |
Windows requires these (or it issues C4291 warnings).
Definition at line 112 of file allocatable.h.
|
inlineinherited |
Definition at line 113 of file allocatable.h.
|
inlineinherited |
The placement delete operator does nothing, as usual.
Definition at line 118 of file allocatable.h.
|
inlineinherited |
The standard no-parameter new operator uses the default Allocator.
Definition at line 84 of file allocatable.h.
|
inlineinherited |
This overloaded version of the new operator uses the AllocationManager's default Allocator for the specified lifetime.
Definition at line 88 of file allocatable.h.
|
inlineinherited |
This overloaded version of the new operator takes the Allocator to use directly as a parameter.
If the Allocator pointer is NULL, this uses the default Allocator.
Definition at line 95 of file allocatable.h.
|
inlineinherited |
Special operator new for using placement new with Allocatables.
Definition at line 100 of file allocatable.h.
|
inlineinherited |
The placement new operator is defined conventionally.
Definition at line 105 of file allocatable.h.