Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE > 클래스 템플릿 참조
Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >에 대한 상속 다이어그램 :

Public 멤버 함수

 CArrayWithExternalBuffer (void *buffer, INDEXTYPE capacity)
 
void MustNotNull () const
 
void MustNull () const
 
bool IsNull () const
 
void Init (void *buffer, INDEXTYPE capacity)
 
void Uninit ()
 
void ShareTo (CArrayWithExternalBuffer &dest) const
 
- Proud::CFastArray< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >(으)로부터 상속된 Public 멤버 함수
 CFastArray ()
 
 CFastArray (const TYPE *data, INDEXTYPE count)
 
 CFastArray (const CFastArray &src)
 
void SetGrowPolicy (GrowPolicy val)
 
GrowPolicy GetGrowPolicy ()
 
void SetMinCapacity (INDEXTYPE newCapacity)
 
void SetCapacity (INDEXTYPE newCapacity)
 
void SuspendShrink ()
 
void OnRecycle ()
 
void OnDrop ()
 
void SetCount (INDEXTYPE newVal)
 
void AddCount (INDEXTYPE addLength)
 
void resize (INDEXTYPE sz)
 for STL compatibility
 
INDEXTYPE GetCapacity () const
 
INDEXTYPE GetCount () const
 
INDEXTYPE size () const
 for STL compatibility
 
bool IsEmpty () const
 
void Clear ()
 
void ClearAndKeepCapacity ()
 
T_IN ElementAt (INDEXTYPE index) const
 
TYPE & ElementAt (INDEXTYPE index)
 
T_IN operator[] (INDEXTYPE index) const
 
TYPE & operator[] (INDEXTYPE index)
 
TYPE * GetData ()
 
const TYPE * GetData () const
 
void Add (T_IN value)
 
void Insert (INDEXTYPE indexAt, T_IN value)
 
void AddRange (const TYPE *data, INDEXTYPE count)
 
void InsertRange (INDEXTYPE indexAt, const TYPE *data, INDEXTYPE count)
 
void CopyRangeTo (CFastArray &dest, INDEXTYPE srcOffset, INDEXTYPE count) const
 
void CopyTo (CFastArray &dest) const
 
void CopyFrom (const CFastArray &src)
 
void CopyFrom (const TYPE *from, INDEXTYPE fromCount)
 
void RemoveRange (INDEXTYPE index, INDEXTYPE count)
 
void RemoveAt (INDEXTYPE index)
 
bool RemoveOneByValue (T_IN value)
 
CFastArrayoperator= (const CFastArray &src)
 
INDEXTYPE FindByValue (T_IN value)
 
bool Contains (T_IN value)
 
bool Equals (const CFastArray &rhs) const
 
void clear ()
 for STL compatibility
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
iterator erase (iterator iter)
 
TYPE PopBack ()
 
void RemoveAndPullLast (intptr_t index)
 

추가로 상속된 멤버들

- Proud::CFastArray< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >(으)로부터 상속된 Protected 멤버 함수
void InitVars ()
 
void BoundCheck (INDEXTYPE index) const
 
- Proud::CFastArray< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >(으)로부터 상속된 Protected 속성
TYPE * m_Data
 
INDEXTYPE m_Length
 
INDEXTYPE m_Capacity
 
INDEXTYPE m_minCapacity
 
bool m_suspendShrink
 
GrowPolicy m_growPolicy
 

상세한 설명

template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
class Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >

외부 버퍼를 사용하는 배열 클래스입니다.

주의: 외부 버퍼안에 이미 할당된 객체들이 존재하지 않아야 합니다. 즉 단순히 초기화된 메모리 영역이어야 합니다. 왜냐하면 CArrayWithExternalBuffer 가 초기화할 것이기 때문입니다.

매개변수
TYPE배열의 원소 타입입니다.
RAWTYPE배열 원소가 raw memory copy를 해도 안전한 타입인지에 대한 여부입니다. int는 안전하지만 std.string은 안전하지 않습니다. 배열의 항목 타입이 생성자, 파괴자, 복사 대입 연산자가 사용되지 않아도 되는 타입인 경우 true로 지정할 수 있습니다. 이를 true로 지정하면 배열에 삽입, 삭제, 크기 변경 등을 할 때 내부적으로 발생하는 배열 항목의 생성, 파괴, 복사 과정을 위해 생성자, 파괴자, 복사 대입 연산자를 호출하지 않습니다. 따라서 처리 속도가 향상됩니다. 기본값은 false입니다.
INDEXTYPE배열 최대 크기 및 index의 type. int32,int64,intPtr 중 하나를 쓰는 것을 권장합니다. 32-64bit int간 casting 부하도 무시 못하므로 적절한 것을 쓸 것을 권합니다. 예를 들어 패킷 크기의 경우 웬만하면 2GB를 넘는 것을 안 다루므로 int32를 권장합니다. 로컬 프로세스에서만 다루는 것이면 intPtr을 권합니다. 네트워크 통계 등 32bit로는 불충분한 값을 다루면 int64를 권합니다.

멤버 함수 문서화

template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
void Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >::Init ( void *  buffer,
INDEXTYPE  capacity 
)
inline

세팅한다.

매개변수
bufferbuffer포인터
capacity버퍼의 크기
template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
bool Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >::IsNull ( ) const
inline

현재 NULL이다

template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
void Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >::MustNotNull ( ) const
inline

NULL이면 예외를 낸다

template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
void Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >::MustNull ( ) const
inline

NULL이 아니면 예외를 낸다

template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
void Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >::ShareTo ( CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE > &  dest) const
inline

dest와 버퍼를 공유한다.

template<typename TYPE, bool TYPE_IN_REF = true, bool RAWTYPE = false, typename INDEXTYPE = intptr_t>
void Proud::CArrayWithExternalBuffer< TYPE, TYPE_IN_REF, RAWTYPE, INDEXTYPE >::Uninit ( )
inline

모든 멤버 변수를 초기화 한다.