Location:
s32std.h
Link against: estor.lib
TSwizzleC<class T>
Supported from 5.0
Maintains a dual representation for a constant object. The representation is:
by stream id, if the object is not in memory (the stream contains the external representation of that object).
by pointer, if the object is in memory.
The template class defines the type of object for which the swizzle is a representation. Access to the to the represented object is available through the swizzle, but is limited. The represented object cannot be changed.
Maintaining a dual representation for an object allows the loading of objects into memory from a store to be deferred; this is particularly important in complex applications.
|
Defined in TSwizzleC
:
AsPtr()
, ExternalizeL()
, TSwizzleC()
, operator T*()
, operator*()
, operator->()
, operator=()
Inherited from TSwizzleCBase
:
AsId()
,
InternalizeL()
,
IsId()
,
IsPtr()
,
operator!=()
,
operator==()
TSwizzleC();
Constructs an uninitialised swizzle. It is necessary because there are also non-default constructors in this class.
TSwizzleC(const T* aPtr);
Constructs a swizzle for a class T
type object and
represents the object by pointer.
|
TSwizzleC(TStreamId anId);
Constructs a swizzle for a class T
type object and
represents the object as a stream id.
|
TSwizzleC(TSwizzle<T> aSwizzle);
Constructs a swizzle for a class T
type object that is
currently represented by another swizzle.
The representation of the class T
type object is the
same as its representation by the specified swizzle, i.e. if the specified
swizzle represents the object as a pointer, then this newly constructed swizzle
also represents the object as a pointer.
|
void ExternalizeL(RWriteStream& aStream) const;
Externalises the stream id of the stream associated with this swizzle.
This function presupposes that:
a store map, i.e. an object of type CStoreMap
, has
been constructed
the id of the stream containing the external representation of the
<class T>
object has been bound to this swizzle and
added to the store map.
the concrete stream referenced by aStream
has been
constructed, specifying the store map as an externalizer.
The presence of this function means that the standard templated
operator<<()
can be used.
|
const T* AsPtr() const;
Returns a constant pointer to the object which this swizzle represents.
Note:
The in memory object cannot be changed through this swizzle.
To access members of the object, the indirect component selector
operator->()
can be used.
|
TSwizzleC<T>& operator=(const T* aPtr);
Sets this swizzle to represent the in-memory type T
object,
pointed to by the specified T*
pointer.
|
|
const T* operator->() const;
Gives access to members of the type T
object which this
swizzle represents.
Note:
use the AsPtr()
member function to return a pointer to the
object itself.
the type T
object cannot be changed through this
operator.
|
operator const T*() const;
Converts the swizzle to a const T*
type.
Typically, the compiler inserts a call to this operator when a
TSwizzleC<class T>
is passed as a parameter to a
function or operation which requires a const
pointer as a formal
argument type.
const T& operator*() const;
Returns a const reference to the type T
object which this
swizzle represents.
|