|
/* Gamelon(tm) File I/O Library Sample Code C++ Language */ /* (C)1994 Menai Corporation(tm) Released for public use */
/* Example 10b. How to use a Cursor to scan objects */ /* within an aggregate (including nested aggregates). */
/* The sample code given in Example 10a will not */ /* affect objects contained within nested aggregates */ /* within the top level of the aggregate. The */ /* following example sets the class number for the */ /* top level aggregate and all the objects contained */ /* within the top level aggregate, including any */ /* objects nested within contained aggregates. */
#include <stdlib.h> #include <iostream.h> #include "gfcursor.hpp"
void CheckObjects(CURSOR *); void CheckObjects(CURSOR *c) { int answer; EC0 error; c>eCursorQueryOnObject(&answer); while (answer) { c>eAltModify(); c>eObjSetClass(4000000); c>eAltCommit(); /* Function returns an error if current object */ /* is not an aggregate. */ error = c>eObjQueryAggregateEmpty(&answer); if (!error && !answer) { c>eCursorMoveIn(); CheckObjects(c); c>eCursorMoveOut(); error = c>eCursorMoveNext(); if (!error) answer = 1; } else { error = c>eCursorMoveNext(); if (error) answer = 0; } } /* end while */ } int main(void) { int valid;
CURSOR *c = new CURSOR("newfile"); c>eCursorQueryValid(&valid); if (!valid) exit(1); CheckObjects(c); delete c; return 0; } |
|||||||||||||
| |
|||||||||||||
|
Home | Product | Consulting | Programming | Reviews | Company | Site Map | Guest Book |
|||||||||||||
|
Menai Corporation, 1010 El Camino Real, Suite 300, Menlo Park, California 94025-4335 |
|||||||||||||
|
Copyright © 1996-98 Menai Corporation. All Rights Reserved. Menai, Gamelon and gamelon(stylized) are worldwide trademarks of Menai Corporation, registered in the United States of America, and the .[g] logo is a worldwide trademark of Menai Corporation. All other trademarks are owned by their respective owners. |
|||||||||||||