64 Workspace::wsv_data.push_back(wsv);
80 if (wsvs &&& wsvs->
wsv)
101 if (
ws[i].size() &&
ws[i].top()->wsv)
136 for (
Index i=0; i < workspace.
ws.nelem(); i++)
140 if (workspace.
ws[i].size() && workspace.
ws[i].top()->wsv)
142 wsvs->
wsv = workspace.
ws[i].top()->wsv;
162 #pragma omp critical (ws_destruct) 165 for (
int i = 0; i <
ws.nelem (); i++)
169 while (
ws[i].size ())
274 if (!
ws[i].top ()->wsv)
276 ws[i].top ()->auto_allocated =
true;
280 ws[i].top ()->initialized =
true;
282 return (
ws[i].top()->wsv);
INDEX Index
The type to use for all integer numbers and indices.
static Array< WsvRecord > wsv_data
Index nelem() const
Number of elements.
void duplicate(Index i)
Duplicate WSV.
Defines the enum type that acts as a handle for workspace variables groups.
void pop_free(Index i)
Pop the topmost wsv from its stack and free its memory.
void * allocate(Index wsvg)
Getaway function to call the allocation function for the WSV group with the given Index...
This file contains the declaration and partly the implementation of the workspace class...
String context
Only for debugging.
virtual ~Workspace()
Destruct the workspace.
void * operator[](Index i)
Retrieve pointer to the given WSV.
void * pop(Index i)
Pop the topmost wsv from its stack.
WorkspaceMemoryHandler wsmh
Workspace()
Construct a new workspace.
void deallocate(Index wsvg, void *vp)
Getaway function to call the deallocation function for the WSV group with the given Index...
void push(Index i, void *wsv)
Push a new wsv onto its stack.
static map< String, Index > WsvMap
static Index add_wsv(const WsvRecord &wsv)
void push_uninitialized(Index i, void *wsv)
Push a new wsv onto its stack but mark it as uninitialized.
static void define_wsv_map()
Array< stack< WsvStruct * > > ws
Workspace variable container.
void * duplicate(Index wsvg, void *vp)
Getaway function to call the duplication function for the WSV group with the given Index...
This class contains all static information for one workspace variable.
void del(Index i)
Delete WSV.
Auxiliary header stuff related to workspace variable groups.