void Pipeline::toBson(BSONObjBuilder *pBuilder) const { /* create an array out of the pipeline operations */ BSONArrayBuilder arrayBuilder; for(SourceContainer::const_iterator iter(sources.begin()), listEnd(sources.end()); iter != listEnd; ++iter) { intrusive_ptr<DocumentSource> pSource(*iter); pSource->addToBsonArray(&arrayBuilder); } /* add the top-level items to the command */ pBuilder->append(commandName, getCollectionName()); pBuilder->append(pipelineName, arrayBuilder.arr()); if (explain) { pBuilder->append(explainName, explain); } bool btemp; if ((btemp = getSplitMongodPipeline())) { pBuilder->append(splitMongodPipelineName, btemp); } if ((btemp = pCtx->getInRouter())) { pBuilder->append(fromRouterName, btemp); } }
void printCollection(const Collection* col, int tabs) { if (!col) return; indent(tabs); printf("%s\n", getCollectionURI(col)); indent(tabs+1); printf("name: %s\n", getCollectionName(col)); indent(tabs+1); printf("description: %s\n", getCollectionDescription(col)); int i; int num; if (col->components) { DNAComponent* com; num = getNumDNAComponentsIn(col); if (num > 0) { indent(tabs+1); printf("%i components:\n", num); for (i=0; i<num; i++) { com = getNthDNAComponentIn(col, i); indent(tabs+2); printf("%s\n", getDNAComponentURI(com)); } } } }
static void writeCollection(Collection* col) { if (!col) return; xmlTextWriterStartElement(WRITER, xmlCharStrdup(NSPREFIX_SBOL ":" NODENAME_COLLECTION)); if (!alreadyProcessed((void *)col)) { markProcessed((void *)col); int n; int num; // properties if (getCollectionURI(col)) xmlTextWriterWriteAttribute(WRITER, xmlCharStrdup(NSPREFIX_RDF ":" NODENAME_ABOUT), xmlCharStrdup(getCollectionURI(col))); if(getCollectionDisplayID(col)) xmlTextWriterWriteElement(WRITER, xmlCharStrdup(NSPREFIX_SBOL ":" NODENAME_DISPLAYID), xmlCharStrdup(getCollectionDisplayID(col))); if (getCollectionName(col)) xmlTextWriterWriteElement(WRITER, xmlCharStrdup(NSPREFIX_SBOL ":" NODENAME_NAME), xmlCharStrdup(getCollectionName(col))); if (getCollectionDescription(col)) xmlTextWriterWriteElement(WRITER, xmlCharStrdup(NSPREFIX_SBOL ":" NODENAME_DESCRIPTION), xmlCharStrdup(getCollectionDescription(col))); // components DNAComponent* com; num = getNumDNAComponentsIn(col); if (num>0) { indentMore(); for (n=0; n<num; n++) { xmlTextWriterStartElement(WRITER, xmlCharStrdup(NSPREFIX_SBOL ":" NODENAME_COMPONENT)); com = getNthDNAComponentIn(col, n); indentMore(); writeDNAComponent(com); indentLess(); xmlTextWriterEndElement(WRITER); } indentLess(); } } else xmlTextWriterWriteAttribute(WRITER, xmlCharStrdup(NSPREFIX_RDF ":" NODENAME_RESOURCE), xmlCharStrdup(getCollectionURI(col))); xmlTextWriterEndElement(WRITER); }