示例#1
0
void Wire::SetValue(void* value, AgilartDataTypes valueType)
{
    list<ConnectionPoint*>::iterator i;

    for ( i = this->connectionPoints->begin(); i != this->connectionPoints->end(); i++ )
    {
        if ( ( *i )->Direction() == DIRECTION_OUT )
            continue;

        AgilartDataTypes receiverType = (*i)->DataType();
        InConnectionPoint* receiver = (InConnectionPoint *) ( *i );

        if( receiverType == ANY )
        {
            receiver->SetDataType( valueType );
            receiver->SetValue( value );
        }
        else
        {
            void* targetValue = Convert::ToTypeInstance( value, valueType, receiverType );
            receiver->SetValue( targetValue );
        }
    }
}