Proud::CProperty 클래스 참조

0개 이상의 Named Property를 가지는 Collection 객체이다. 더 자세히 ...

Proud::CProperty에 대한 상속 다이어그램 :

클래스

class  const_iterator
 

Public 타입

typedef CFastMap< String,
CVariant, StringTraits
MapType
 

Public 멤버 함수

const_iterator begin () const
 
const_iterator end () const
 
size_t GetCount () const
 
void Remove (const String &key)
 
void Clear ()
 
bool TryGetValue (const String &key, CVariant &ret)
 
bool ContainsKey (const String &key)
 
bool Add (const String &key, const CVariant &val)
 
void CopyKeysTo (CFastArray< String > &dest)
 
PROUD_API CVariant GetField (const String &name)
 
virtual PROUD_API void SetField (const String &name, const CVariant &value)
 
virtual PROUD_API void RemoveField (const String &name)
 
virtual PROUD_API void FromVariant (_variant_t from)
 
virtual void FromByteArray (const ByteArray &from)
 
virtual PROUD_API void FromByteArray (const uint8_t *data, int length)
 
virtual PROUD_API void ToByteArray (ByteArray &output)
 
PROUD_API CProperty ()
 
PROUD_API CProperty (const CProperty &rhs)
 
 CProperty (_variant_t from)
 
PROUD_API operator _variant_t () const
 
PROUD_API operator ByteArrayPtr () const
 
CPropertyoperator= (const _variant_t &from)
 
CPropertyoperator= (ByteArray &from)
 
CPropertyoperator= (const CProperty &rhs)
 
PROUD_API String GetDumpedText ()
 

Protected 멤버 함수

virtual void AssertThreadID (eAccessMode eMode) const
 
virtual void ClearThreadID () const
 

Protected 속성

MapType m_map
 

Friends

CMessageoperator<< (CMessage &packet, const CProperty &rhs)
 
CMessageoperator>> (CMessage &packet, CProperty &rhs)
 

상세한 설명

0개 이상의 Named Property를 가지는 Collection 객체이다.

정의

  • Unique key container associated with one value. 즉, Set of (key as case insensitive string, value as variant). 즉, key값으로 대소문자를 안가리는 string이 들어간다는 점을 제외하면 Visual Basic의 Collection과 같은 역할을 한다. 예를 들어,
    { ('name','baehj'), ('id',123), ('height',176) }

기능

  • value type이 _variant_t type이므로, 이 변수를 다룰 때의 주의점 이 그대로 적용된다.(예를 들어, long은 쓰일 수 있으나 int는 호환이 안됨)
  • PropCollection 객체 자체는 _variant_t 객체로 캐스팅될 수 있다. 또한 반대도 가능하다. 이때, PropCollection의 내용은 _variant_t로 serialize된다. 이는 OLE DB에서 PropCollection의 내용을 binary type field에 저장할 수 있다.

사용 예

PropCollection a;
a.Fields[L"name"]=L"baehj";
a.Fields[L"id"]=123L;
a.Fields[L"height"]=176L;

이제 a에는 { ('name','baehj'), ('id',123), ('height',176) }가 들어간다.

_bstr_t name=a.GetField(L"name"); -- name 변수에는 "baehj"가 들어간다.
_variant_t serialized=a; //-- serialized에는 a가 serialize된 형태의 binary type data가 들어간다.
PropCollection b;
b=serialized; //-- b는 a와 같게 된다.

멤버 타입정의 문서화

field 이름과 값에 대응하는 map 객체이다.

  • 주의!! iteration을 위해 이 데이터 멤버를 직접 접근하는 것은 허락하나, 읽기 전용으로만 쓰는 것을 허락한다.

생성자 & 소멸자 문서화

PROUD_API Proud::CProperty::CProperty ( )

기본 생성자

Proud::CProperty::CProperty ( _variant_t  from)

CVariant type과 호환되게 하는 helper function

멤버 함수 문서화

virtual PROUD_API void Proud::CProperty::FromVariant ( _variant_t  from)
virtual

serialize가 되어 있는 bytearray type의 variant의 내용을 deserialize해서 이 객체에 채운다.

매개변수
from..복사 원본
PROUD_API String Proud::CProperty::GetDumpedText ( )

필드의 값을 읽거나 기록할 때 사용한다. 자세한 것은 dbc1_adding_fields 참조.

이 콜렉션 객체의 내용을 문자열로 만들어서 출력한다.

  • 디버깅을 할 때 용이하다.
PROUD_API CVariant Proud::CProperty::GetField ( const String name)

이 collection 객체에 있는 특정 (key, value) pair를 구한다.

  • 이 메서드 대신 Fields[]를 직접 다루는 것이 더 편하므로 권장된다.
    반환값
    pair의 value. 만약 key에 해당하는 pair가 없으면 empty type variant를 리턴한다.
    매개변수
    namekey of pair whose value should be retrieved
PROUD_API Proud::CProperty::operator _variant_t ( ) const

_variant_t type과 호환되게 하는 helper function

CProperty& Proud::CProperty::operator= ( const _variant_t &  from)
inline

복사 생성자

virtual PROUD_API void Proud::CProperty::RemoveField ( const String name)
virtual

이 collection 객체에서 특정 (key, value) pair를 제거한다.

매개변수
name제거할 pair의 key 값

Proud::CPropNode에서 재구현되었습니다.

virtual PROUD_API void Proud::CProperty::SetField ( const String name,
const CVariant value 
)
virtual

이 collection 객체에 특정 (key, value) pair를 넣는다. 이미 같은 key를 가지는 pair가 있으면 그것을 새걸로 교체한다.

  • 이 메서드 대신 Fields[]를 직접 다루는 것이 더 편하므로 권장된다.
    매개변수
    namekey of pair
    valuevalue of pair

Proud::CPropNode에서 재구현되었습니다.

Friend, 그리고 관련된 함수 문서화

CMessage& operator<< ( CMessage packet,
const CProperty rhs 
)
friend

PropCollection의 Message 직렬화 헬퍼 기능

CMessage& operator>> ( CMessage packet,
CProperty rhs 
)
friend

PropCollection의 Message 병렬화 헬퍼 기능