version 1.50, 2005/05/13 20:53:39
|
version 1.51, 2005/06/20 12:50:13
|
|
|
// David Dillard, VERITAS Software Corp. | // David Dillard, VERITAS Software Corp. |
// (david.dillard@veritas.com) | // (david.dillard@veritas.com) |
// Sean Keenan, Hewlett-Packard Company (sean.keenan@hp.com) | // Sean Keenan, Hewlett-Packard Company (sean.keenan@hp.com) |
|
// Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) for Bug#2393 |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
{ | { |
PEGASUS_ASSERT(key != NULL); | PEGASUS_ASSERT(key != NULL); |
size_t keysize = strlen(key); | size_t keysize = strlen(key); |
_key = new char[keysize + 1]; |
_key.reset(new char[keysize + 1]); |
memcpy(_key, key, keysize); |
memcpy(_key.get(), key, keysize); |
_key[keysize] = 0x00; |
_key.get()[keysize] = 0x00; |
| |
} | } |
| |
|
|
{ | { |
PEGASUS_ASSERT(key != NULL); | PEGASUS_ASSERT(key != NULL); |
size_t keysize = strlen(key); | size_t keysize = strlen(key); |
_key = new char[keysize + 1]; |
_key.reset(new char[keysize + 1]); |
memcpy(_key, key, keysize); |
memcpy(_key.get(), key, keysize); |
_key[keysize] = 0x00; |
_key.get()[keysize] = 0x00; |
_data = ::operator new(_size); | _data = ::operator new(_size); |
| |
} | } |
|
|
PEGASUS_ASSERT(data != NULL); | PEGASUS_ASSERT(data != NULL); |
size_t keysize = strlen(key); | size_t keysize = strlen(key); |
| |
_key = new char[keysize + 1]; |
_key.reset(new char[keysize + 1]); |
memcpy(_key, key, keysize); |
memcpy(_key.get(), key, keysize); |
_key[keysize] = 0x00; |
_key.get()[keysize] = 0x00; |
_data = ::operator new(_size); | _data = ::operator new(_size); |
memcpy(_data, data, size); | memcpy(_data, data, size); |
} | } |
|
|
{ | { |
_delete_func( _data ); | _delete_func( _data ); |
} | } |
if( _key != NULL ) |
|
delete [] _key; |
|
} | } |
| |
/** | /** |
|
|
| |
inline Boolean operator==(const thread_data& b) const | inline Boolean operator==(const thread_data& b) const |
{ | { |
return(operator==(b._key)); |
return(operator==(b._key.get())); |
} | } |
| |
private: | private: |
|
|
thread_data(); | thread_data(); |
void *_data; | void *_data; |
size_t _size; | size_t _size; |
char *_key; |
AutoArrayPtr<char> _key; |
| |
friend class DQueue<thread_data>; | friend class DQueue<thread_data>; |
friend class Thread; | friend class Thread; |