Logo Search packages:      
Sourcecode: libpodofo version File versions  Download package

const PdfVariant & PoDoFo::PdfVariant::operator= ( const PdfVariant rhs )

Assign the values of another PdfVariant to this one.

Parameters:
rhsan existing variant which is copied.

This will set the dirty flag of this object.

See also:
IsDirty

Definition at line 313 of file PdfVariant.cpp.

References DelayedLoad(), PoDoFo::ePdfDataType_Array, PoDoFo::ePdfDataType_Bool, PoDoFo::ePdfDataType_Dictionary, PoDoFo::ePdfDataType_HexString, PoDoFo::ePdfDataType_Name, PoDoFo::ePdfDataType_Null, PoDoFo::ePdfDataType_Number, PoDoFo::ePdfDataType_RawData, PoDoFo::ePdfDataType_Real, PoDoFo::ePdfDataType_Reference, PoDoFo::ePdfDataType_String, PoDoFo::ePdfDataType_Unknown, m_eDataType, and PoDoFo::PdfVariant::UVariant::pData.

{
    Clear();

    rhs.DelayedLoad();

    m_eDataType      = rhs.m_eDataType;
    
    switch( m_eDataType ) 
    {
        case ePdfDataType_Array:
        {
            if( rhs.m_Data.pData ) 
                m_Data.pData = new PdfArray( *(static_cast<PdfArray*>(rhs.m_Data.pData)) );
            break;
        }
        case ePdfDataType_Reference:
        {
            if( rhs.m_Data.pData ) 
                m_Data.pData = new PdfReference( *(static_cast<PdfReference*>(rhs.m_Data.pData)) );
            break;
        }
        case ePdfDataType_Dictionary:
        {
            if( rhs.m_Data.pData ) 
                m_Data.pData = new PdfDictionary( *(static_cast<PdfDictionary*>(rhs.m_Data.pData)) );
            break;
        }
        case ePdfDataType_Name:
        {
            if( rhs.m_Data.pData ) 
                m_Data.pData = new PdfName( *(static_cast<PdfName*>(rhs.m_Data.pData)) );
            break;
        }
        case ePdfDataType_String:
        case ePdfDataType_HexString:
        {
            if( rhs.m_Data.pData ) 
                m_Data.pData = new PdfString( *(static_cast<PdfString*>(rhs.m_Data.pData)) );
            break;
        }
            
        case ePdfDataType_RawData: 
        {
            if( rhs.m_Data.pData ) 
                m_Data.pData = new PdfData( *(static_cast<PdfData*>(rhs.m_Data.pData)) );
            break;
        }
        case ePdfDataType_Bool:
        case ePdfDataType_Null:
        case ePdfDataType_Number:
        case ePdfDataType_Real:
            m_Data = rhs.m_Data;
            break;
            
        case ePdfDataType_Unknown:
        default:
            break;
    };

    SetDirty( true ); 

    return (*this);
}

Here is the call graph for this function:


Generated by  Doxygen 1.6.0   Back to index