# The Vector class

(PECL pht >= 0.0.1)

## Introduction

The pht\Vector class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so is does not need to be explicitly destroyed.

The pht\Vector class enables for array access upon its objects (along with the isset() and unset() functions). The ArrayAccess interface is not explicitly implemented, however, because it is only needed for such abilities by userland classes.

## Class synopsis

pht\Vector implements pht\Threaded {
/* Methods */
public __construct ([ int `$size` = 0 [, mixed `$value` = 0 ]] ) : Vector
public deleteAt ( int `$offset` ) : void
public insertAt ( mixed `$value` , int `$offset` ) : void
public lock ( void ) : void
public pop ( void ) : mixed
public push ( mixed `$value` ) : void
public resize ( int `$size` [, mixed `$value` = 0 ] ) : void
public shift ( void ) : mixed
public size ( void ) : int
public unlock ( void ) : void
public unshift ( mixed `$value` ) : void
public updateAt ( mixed `$value` , int `$offset` ) : void
}

## Table of Contents

- pht\Vector::__construct — Vector creation
- pht\Vector::deleteAt — Deletes a value in the vector
- pht\Vector::insertAt — Inserts a value into the vector
- pht\Vector::lock — Acquires the vector's mutex lock
- pht\Vector::pop — Pops a value to the vector
- pht\Vector::push — Pushes a value to the vector
- pht\Vector::resize — Resizes a vector
- pht\Vector::shift — Shifts a value from the vector
- pht\Vector::size — Gets the size of the vector
- pht\Vector::unlock — Releases the vector's mutex lock
- pht\Vector::unshift — Unshifts a value to the vector front
- pht\Vector::updateAt — Updates a value in the vector