Пример использования классов Context, NDSObject, NDSObjects, String, Exception. Данный пример демонстрирует простейшую программу, которая выводит на консоль дерево NDS начиная с указанного объекта либо корня. Для всех пользователей выводятся их фамилии и номера телефонов.
#include <stdio.h> #include "BGDNet.h" using BGDNet::Context; using BGDNet::NDSObject; using BGDNet::NDSObjects; using BGDNet::String; using BGDNet::Exception; void subtree( const NDSObject* pObj, int level = 0 ); int main( int argc, char* argv[] ) { try { Context ctx; ctx.dckFlags(ctx.dckFlags() | DCV_TYPELESS_NAMES); const char* root = (2 == argc) ? argv[1] : "[Root]"; NDSObject cont(ctx, root); subtree(&cont); } catch (const Exception& e) { printf("ERROR: %s\n", e.what()); } puts("----------"); return 0; } void subtree( const NDSObject* pObj, int level ) { const int MAX_LEVEL = 50; if (level < MAX_LEVEL) { char buf[MAX_LEVEL + 1]; memset(buf, ' ', level); buf[level] = '\0'; const char* base = pObj->baseClass().ptr(); if (strcmp("User", base)) printf("%s%s (%s)\n", buf, pObj->rdn().ptr(), base); else { String surname, phone; pObj->attr("Surname", &surname); pObj->attr("Telephone Number", &phone); printf("%s%s (%s) - %s, \"%s\"\n", buf, pObj->rdn().ptr(), base, surname.ptr(), phone.ptr()); } if (pObj->isContainer()) { NDSObjects sub; pObj->getSubordinates(&sub); for (int i = 0; i < sub.size(); ++i) subtree(sub[i], level + 2); } } }
Документация на BGDNet сгенерирована Mon Apr 1 18:36:52 2002, БЕЛГИПРОДОР © 2001