本文整理汇总了C++中OverlayComp::valid方法的典型用法代码示例。如果您正苦于以下问题:C++ OverlayComp::valid方法的具体用法?C++ OverlayComp::valid怎么用?C++ OverlayComp::valid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OverlayComp
的用法示例。
在下文中一共展示了OverlayComp::valid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadFrames
int DrawIdrawScript::ReadFrames (istream& in, void* addr1, void* addr2, void* addr3, void* addr4) {
FrameComp* frame;
FrameFileComp* framefile;
OverlayComp* child;
DrawIdrawComp* comps = (DrawIdrawComp*)addr1;
char buf1[BUFSIZ];
char buf2[BUFSIZ];
char* buf = buf1;
DrawCatalog* catalog = (DrawCatalog*)unidraw->GetCatalog();
int num_edge = (comps)->GetNumEdge();
int num_node = (comps)->GetNumNode();
catalog->graph_init(comps, num_edge, num_node);
FrameComp* bgframe = nil;
while (in.good()) {
frame = nil;
framefile = nil;
child = nil;
if (read_name(in, buf, BUFSIZ)) break;
int status;
if (status = read_gsptspic(buf, in, comps)) {
if (status==-1) break;
}
else if (strcmp(buf, "frame") == 0) {
frame = new FrameComp(in, comps);
if (!bgframe) bgframe = frame;
} else if (strcmp(buf, "framefile") == 0) framefile = new FrameFileComp(in, comps);
else {
if (!bgframe) {
bgframe = new FrameComp(comps);
comps->Append(bgframe);
}
child = read_obj(buf, in, bgframe);
if (!child) return -1;
}
if (frame != nil) {
if (in.good() && frame->valid()) {
comps->Append(frame);
} else {
/* report failure even if one child fails */
delete frame;
return -1;
}
}
if (framefile != nil) {
Iterator j;
framefile->First(j);
FrameIdrawComp* frameidraw = (FrameIdrawComp*)framefile->GetComp(j);
if (in.good() && frameidraw->valid()) {
Iterator i;
frameidraw->First(i);
frameidraw->Next(i);
while (!frameidraw->Done(i)) {
comps->Append((GraphicComp*)frameidraw->GetComp(i));
frameidraw->Next(i);
}
} else {
/* report failure even if one child fails */
delete framefile;
return -1;
}
}
if (child) {
if (in.good() && child->valid()) {
bgframe->Append(child);
} else {
/* report failure even if one child fails */
if (!*buf && (buf==buf1 ? *buf2 : *buf1))
cerr << "Error after reading " << (buf==buf1 ? buf2 : buf1) << "\n";
delete child;
return -1;
}
}
buf = buf==buf1 ? buf2 : buf1;
}
catalog->graph_finish();
return 0;
}