/* Print name, mask off any dictionary bits. */ void TypeName( const char *Name ) { const char *FirstChar; int32 Len; FirstChar = Name+1; Len = *Name & 0x1F; ioType( FirstChar, Len ); }
IOData::IOData( const Tag* tag ) : AdhocPlugin( ExtIOData ), m_in( 0 ), m_out( 0 ), m_error( 0 ), m_type( TypeInvalid ) { if( !tag || !( tag->name() == "iodata" && tag->hasAttribute( XMLNS, XMLNS_IODATA ) ) ) return; m_status.elapsed = -1; m_status.remaining = -1; m_status.percentage = -1; m_type = ioType( tag->findAttribute( "type" ) ); Tag* m = 0; switch( m_type ) { case TypeInput: m = tag->findChild( "in" ); if( m ) m_in = m->clone(); break; case TypeIoSchemataResult: m = tag->findChild( "desc" ); if( m ) m_desc = m->cdata(); m = tag->findChild( "out" ); if( m ) m_out = m->clone(); m = tag->findChild( "in" ); if( m ) m_in = m->clone(); break; case TypeOutput: m = tag->findChild( "out" ); if( m ) m_out = m->clone(); break; case TypeError: m = tag->findChild( "error" ); if( m ) m_error = m->clone(); break; case TypeStatus: m = tag->findChild( "status" ); if( m ) { Tag* t = m->findChild( "elapsed" ); if( t ) m_status.elapsed = atoi( t->cdata().c_str() ); t = m->findChild( "remaining" ); if( t ) m_status.remaining = atoi( t->cdata().c_str() ); t = m->findChild( "percentage" ); if( t ) m_status.percentage = atoi( t->cdata().c_str() ); t = m->findChild( "information" ); if( t ) m_status.info = t->cdata(); } break; case TypeIoSchemataGet: case TypeGetStatus: case TypeGetOutput: default: break; } }