21 static const char* ioTypes[] = {
32 static inline IOData::Type ioType(
const std::string& type )
34 return static_cast<IOData::Type>( util::lookup( type, ioTypes ) );
39 m_in( 0 ), m_out( 0 ), m_error( 0 ),
42 m_status.elapsed = -1;
43 m_status.remaining = -1;
44 m_status.percentage = -1;
49 m_in( 0 ), m_out( 0 ), m_error( 0 ),
55 m_status.elapsed = -1;
56 m_status.remaining = -1;
57 m_status.percentage = -1;
59 m_type = ioType(
tag->findAttribute(
"type" ) );
64 m = tag->findChild(
"in" );
68 case TypeIoSchemataResult:
69 m = tag->findChild(
"desc" );
73 m = tag->findChild(
"out" );
77 m = tag->findChild(
"in" );
82 m = tag->findChild(
"out" );
87 m = tag->findChild(
"error" );
92 m = tag->findChild(
"status" );
95 Tag* t = m->findChild(
"elapsed" );
97 m_status.elapsed = atoi( t->cdata().c_str() );
99 t = m->findChild(
"remaining" );
101 m_status.remaining = atoi( t->cdata().c_str() );
103 t = m->findChild(
"percentage" );
105 m_status.percentage = atoi( t->cdata().c_str() );
107 t = m->findChild(
"information" );
109 m_status.info = t->cdata();
112 case TypeIoSchemataGet:
133 Tag* i =
new Tag(
"iodata" );
135 i->
addAttribute(
"type", util::lookup( m_type, ioTypes ) );
146 new Tag( i,
"desc", m_desc );
155 t =
new Tag( i,
"status" );
156 if( m_status.elapsed >= 0 )
157 new Tag( t,
"elapsed", util::int2string( m_status.elapsed ) );
158 if( m_status.remaining >= 0 )
159 new Tag( t,
"remaining", util::int2string( m_status.remaining ) );
160 if( m_status.percentage >= 0 )
161 new Tag( t,
"percentage", util::int2string( m_status.percentage ) );
162 if( m_status.info.length() )
163 new Tag( t,
"information", m_status.info );
165 case TypeIoSchemataGet:
178 i->m_status = m_status;
182 i->m_in = m_in->
clone();
184 i->m_out = m_out->
clone();
186 i->m_error = m_error->
clone();
202 m_in =
new Tag(
"in" );
203 m_in->addChild(
in );
218 m_out =
new Tag(
"out" );
219 m_out->addChild(
out );
234 m_error =
new Tag(
"error" );
235 m_error->addChild(
error );
const Tag * error() const
void setError(Tag *error)
virtual IOData * clone() const
virtual Tag * tag() const
This is an abstraction of an XML element.
bool addAttribute(Attribute *attr)
void addChild(Tag *child)
bool setXmlns(const std::string &xmlns, const std::string &prefix=EmptyString)
The namespace for the gloox library.
const std::string EmptyString
const std::string XMLNS_IODATA