My Project
UDK 3.2.7 C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
rtl::ByteSequence Class Reference

C++ class representing a SAL byte sequence. More...

#include <byteseq.h>

Public Member Functions

 ByteSequence () throw ()
 Default constructor: Creates an empty sequence.
 ByteSequence (const ByteSequence &rSeq) throw ()
 Copy constructor: Creates a copy of given sequence.
 ByteSequence (sal_Sequence *pSequence) throw ()
 Copy constructor Creates a copy from the C-Handle.
 ByteSequence (const sal_Int8 *pElements, sal_Int32 len)
 Constructor: Creates a copy of given data bytes.
 ByteSequence (sal_Int32 len)
 Constructor: Creates sequence of given length and initializes all bytes to 0.
 ByteSequence (sal_Int32 len, enum __ByteSequence_NoDefault nodefault)
 Constructor: Creates sequence of given length and does NOT initialize data.
 ByteSequence (sal_Sequence *pSequence, enum __ByteSequence_NoAcquire noacquire) throw ()
 Constructor: Creates a sequence from a C-Handle without acquiring the handle, thus taking over owenership.
 ~ByteSequence () throw ()
 Destructor: Releases sequence handle.
ByteSequenceoperator= (const ByteSequence &rSeq) throw ()
 Assignment operator: Acquires given sequence handle and releases a previously set handle.
sal_Int32 getLength () const throw ()
 Gets the length of sequence.
const sal_Int8getConstArray () const throw ()
 Gets a pointer to byte array for READING.
sal_Int8getArray ()
 Gets a pointer to elements array for READING AND WRITING.
sal_Int8operator[] (sal_Int32 nIndex)
 Non-const index operator: Obtains a reference to byte indexed at given position.
const sal_Int8operator[] (sal_Int32 nIndex) const throw ()
 Const index operator: Obtains a reference to byte indexed at given position.
sal_Bool operator== (const ByteSequence &rSeq) const throw ()
 Equality operator: Compares two sequences.
sal_Bool operator!= (const ByteSequence &rSeq) const throw ()
 Unequality operator: Compares two sequences.
void realloc (sal_Int32 nSize)
 Reallocates sequence to new length.
sal_SequencegetHandle () const throw ()
 Returns the UNnacquired C handle of the sequence.
sal_Sequenceget () const throw ()
 Returns the UNnacquired C handle of the sequence (for compatibility reasons)

Detailed Description

C++ class representing a SAL byte sequence.

C++ Sequences are reference counted and shared, so the sequence keeps a handle to its data. To keep value semantics, copies are only generated if the sequence is to be modified (new handle).

Constructor & Destructor Documentation

rtl::ByteSequence::ByteSequence ( ) throw ()
inline

Default constructor: Creates an empty sequence.

rtl::ByteSequence::ByteSequence ( const ByteSequence rSeq) throw ()
inline

Copy constructor: Creates a copy of given sequence.

Parameters
rSeqanother byte sequence
rtl::ByteSequence::ByteSequence ( sal_Sequence pSequence) throw ()
inline

Copy constructor Creates a copy from the C-Handle.

Parameters
pSequenceanother byte sequence handle
rtl::ByteSequence::ByteSequence ( const sal_Int8 pElements,
sal_Int32  len 
)
inline

Constructor: Creates a copy of given data bytes.

Parameters
pElementsan array of bytes
lennumber of bytes
rtl::ByteSequence::ByteSequence ( sal_Int32  len)
inline

Constructor: Creates sequence of given length and initializes all bytes to 0.

Parameters
leninitial sequence length
rtl::ByteSequence::ByteSequence ( sal_Int32  len,
enum __ByteSequence_NoDefault  nodefault 
)
inline

Constructor: Creates sequence of given length and does NOT initialize data.

         Use this ctor for performance optimization only.
Parameters
leninitial sequence length
nodefaultdummy parameter forcing explicit BYTESEQ_NODEFAULT
rtl::ByteSequence::ByteSequence ( sal_Sequence pSequence,
enum __ByteSequence_NoAcquire  noacquire 
) throw ()
inline

Constructor: Creates a sequence from a C-Handle without acquiring the handle, thus taking over owenership.

Eitherway the handle is release by the destructor. This ctor is useful, when working with a c-interface (it safes a pair of acquire and release call and is thus a performance optimization only).

Parameters
pSequencesequence handle to be taken over
noacquiredummy parameter forcing explicit BYTESEQ_NOACQUIRE
rtl::ByteSequence::~ByteSequence ( ) throw ()
inline

Destructor: Releases sequence handle.

Last handle will free memory.

Member Function Documentation

sal_Sequence* rtl::ByteSequence::get ( ) const throw ()
inline

Returns the UNnacquired C handle of the sequence (for compatibility reasons)

Returns
UNacquired handle of the sequence
sal_Int8 * rtl::ByteSequence::getArray ( )
inline

Gets a pointer to elements array for READING AND WRITING.

In general if the sequence has a handle acquired by other sequences (reference count > 1), then a new sequence is created copying all bytes to keep value semantics! If the sequence has a length of 0, then the returned pointer is undefined.

Returns
pointer to elements array
const sal_Int8* rtl::ByteSequence::getConstArray ( ) const throw ()
inline

Gets a pointer to byte array for READING.

If the sequence has a length of 0, then the returned pointer is undefined.

Returns
pointer to byte array
sal_Sequence* rtl::ByteSequence::getHandle ( ) const throw ()
inline

Returns the UNnacquired C handle of the sequence.

Returns
UNacquired handle of the sequence
sal_Int32 rtl::ByteSequence::getLength ( ) const throw ()
inline

Gets the length of sequence.

Returns
length of sequence
sal_Bool rtl::ByteSequence::operator!= ( const ByteSequence rSeq) const throw ()
inline

Unequality operator: Compares two sequences.

Parameters
rSeqanother byte sequence (right side)
Returns
false if both sequences are equal, true otherwise
ByteSequence & rtl::ByteSequence::operator= ( const ByteSequence rSeq) throw ()
inline

Assignment operator: Acquires given sequence handle and releases a previously set handle.

Parameters
rSeqanother byte sequence
Returns
this sequence
sal_Bool rtl::ByteSequence::operator== ( const ByteSequence rSeq) const throw ()
inline

Equality operator: Compares two sequences.

Parameters
rSeqanother byte sequence (right side)
Returns
true if both sequences are equal, false otherwise
sal_Int8 & rtl::ByteSequence::operator[] ( sal_Int32  nIndex)
inline

Non-const index operator: Obtains a reference to byte indexed at given position.

In general if the sequence has a handle acquired by other sequences (reference count > 1), then a new sequence is created copying all bytes to keep value semantics!

Attention
The implementation does NOT check for array bounds!
Parameters
nIndexindex
Returns
non-const C++ reference to element at index nIndex
const sal_Int8& rtl::ByteSequence::operator[] ( sal_Int32  nIndex) const throw ()
inline

Const index operator: Obtains a reference to byte indexed at given position.

                  The implementation does NOT check for array bounds!
Parameters
nIndexindex
Returns
const C++ reference to byte at element of indenx nIndex
void rtl::ByteSequence::realloc ( sal_Int32  nSize)
inline

Reallocates sequence to new length.

If the sequence has a handle acquired by other sequences (reference count > 1), then the remaining elements are copied to a new sequence handle to keep value semantics!

Parameters
nSizenew size of sequence

The documentation for this class was generated from the following files: