Lines Matching defs:Data
33 class Data : public D
37 Data() : cnt( 1 ), state( Orig ) {}
38 Data( const Data &d ) : D( d ), cnt( 1 ), state( d.state & (~Orig) ) {}
39 Data &operator=( const Data &d ) {
45 Data( void* ) : cnt( 1 ), state( Null ) {}
47 virtual ~Data();
51 virtual ~Data() {}
63 CIShared( bool null = true ) : d( null ? Null.d->ref(), Null.d : new Data() ) {}
74 bool isNull() const { return ((d->state & Data::Null) != 0); }
80 return isNull() ? CIShared( Null ) : CIShared( new Data( *d ) );
95 CIShared( Data *aData ) : d( aData ) {}
96 Data *d;
214 template< class D > CIShared<D> CIShared<D>::Null = CIShared( new Data( 0 ) );
275 * share are equal. Data objects are compared using the comparison operator
290 if ( !(d->state & Data::Null) && d->cnt > 1 ) {
292 d = new Data( *d );
312 if ( !(d->state & Data::Null) ) {
315 d->state &= ~Data::Orig;
316 d = new Data( *d );
317 d->state |= Data::Orig;
320 d->state |= Data::Orig;
363 if ( d->state & Data::Null ) {
374 // CIShared<D>::Data debug methods
379 template< class D > CIShared<D>::Data::~Data() {
381 printf( "~Data(): ref count is %d, but must be zero!\n", cnt );
384 template< class D > void CIShared<D>::Data::ref() {
387 "Data::ref() ref count was %d, "
394 template< class D > bool CIShared<D>::Data::deref() {
397 "Data::ref() ref count was %d, "