static S3Status make_list_parts_callback(ListPartsData *lpData) { int i; // Convert IsTruncated int isTruncated = (!strcmp(lpData->isTruncated, "true") || !strcmp(lpData->isTruncated, "1")) ? 1 : 0; // Convert the contents S3ListPart Parts[lpData->partsCount]; int partsCount = lpData->partsCount; for (i = 0; i < partsCount; i++) { S3ListPart *partDest = &(Parts[i]); ListPart *partSrc = &(lpData->parts[i]); partDest->eTag = partSrc->eTag; partDest->partNumber = parseUnsignedInt(partSrc->partNumber); partDest->size = parseUnsignedInt(partSrc->size); partDest->lastModified = parseIso8601Time(partSrc->lastModified); } return (*(lpData->listPartsCallback)) (isTruncated, lpData->nextPartNumberMarker, lpData->initiatorId, lpData->initiatorDisplayName, lpData->ownerId, lpData->ownerDisplayName, lpData->storageClass, partsCount, lpData->handlePartsStart, Parts, lpData->callbackData); }
void XMLMesh::readInterval(const xmlChar *name, const xmlChar **attrs) { // Check dimension if (mesh->getDimension() != 1) error("Mesh entity (interval) does not match dimension of mesh (%d).", mesh->getDimension()); // Parse values unsigned int c = parseUnsignedInt(name, attrs, "index"); unsigned int v0 = parseUnsignedInt(name, attrs, "v0") + this->numCells; unsigned int v1 = parseUnsignedInt(name, attrs, "v1") + this->numCells; // Add cell mesh->getSieve()->addArrow(v0, c, 0); mesh->getSieve()->addArrow(v1, c, 1); };
static S3Status make_list_bucket_callback(ListBucketData *lbData) { int i; // Convert IsTruncated int isTruncated = (!strcmp(lbData->isTruncated, "true") || !strcmp(lbData->isTruncated, "1")) ? 1 : 0; // Convert the contents #ifdef MSVC_NO_C99 S3ListBucketContent *contents = (S3ListBucketContent *) malloc(sizeof(S3ListBucketContent) * lbData->contentsCount); #else S3ListBucketContent contents[lbData->contentsCount]; #endif int contentsCount = lbData->contentsCount; for (i = 0; i < contentsCount; i++) { S3ListBucketContent *contentDest = &(contents[i]); ListBucketContents *contentSrc = &(lbData->contents[i]); contentDest->key = contentSrc->key; contentDest->lastModified = parseIso8601Time(contentSrc->lastModified); contentDest->eTag = contentSrc->eTag; contentDest->size = parseUnsignedInt(contentSrc->size); contentDest->ownerId = contentSrc->ownerId[0] ?contentSrc->ownerId : 0; contentDest->ownerDisplayName = (contentSrc->ownerDisplayName[0] ? contentSrc->ownerDisplayName : 0); } // Make the common prefixes array int commonPrefixesCount = lbData->commonPrefixesCount; #ifdef MSVC_NO_C99 char **commonPrefixes = (char **)malloc(sizeof(char*) * commonPrefixesCount); #else char *commonPrefixes[commonPrefixesCount]; #endif for (i = 0; i < commonPrefixesCount; i++) { commonPrefixes[i] = lbData->commonPrefixes[i]; } S3Status result = (*(lbData->listBucketCallback)) (isTruncated, lbData->nextMarker, contentsCount, contents, commonPrefixesCount, (const char **) commonPrefixes, lbData->callbackData); #ifdef MSVC_NO_C99 free(contents); free(commonPrefixes); #endif return result; }
void XMLMesh::readMesh(const xmlChar *name, const xmlChar **attrs) { // Parse values std::string type = parseString(name, attrs, "celltype"); this->embedDim = parseUnsignedInt(name, attrs, "dim"); int tdim = 0; if (type == "interval") { tdim = 1; } else if (type == "triangle") { tdim = 2; } else if (type == "tetrahedron") { tdim = 3; } mesh->setDimension(tdim); };
void XMLMesh::readVertex(const xmlChar *name, const xmlChar **attrs) { // Read index uint v = parseUnsignedInt(name, attrs, "index"); switch (this->embedDim) { case 3: this->coords[v*this->embedDim+2] = parseReal(name, attrs, "z"); case 2: this->coords[v*this->embedDim+1] = parseReal(name, attrs, "y"); case 1: this->coords[v*this->embedDim+0] = parseReal(name, attrs, "x"); break; default: error("Dimension of mesh must be 1, 2 or 3."); } };
static S3Status make_list_bucket_callback(ListBucketData *lbData) { int i; // Convert IsTruncated int isTruncated = (!strcmp(lbData->isTruncated, "true") || !strcmp(lbData->isTruncated, "1")) ? 1 : 0; // Convert the contents S3ListBucketContent contents[lbData->contentsCount]; int contentsCount = lbData->contentsCount; for (i = 0; i < contentsCount; i++) { S3ListBucketContent *contentDest = &(contents[i]); ListBucketContents *contentSrc = &(lbData->contents[i]); contentDest->key = contentSrc->key; contentDest->lastModified = parseIso8601Time(contentSrc->lastModified); contentDest->eTag = contentSrc->eTag; contentDest->size = parseUnsignedInt(contentSrc->size); contentDest->ownerId = contentSrc->ownerId[0] ?contentSrc->ownerId : 0; contentDest->ownerDisplayName = (contentSrc->ownerDisplayName[0] ? contentSrc->ownerDisplayName : 0); } // Make the common prefixes array int commonPrefixesCount = lbData->commonPrefixesCount; char *commonPrefixes[commonPrefixesCount]; for (i = 0; i < commonPrefixesCount; i++) { commonPrefixes[i] = lbData->commonPrefixes[i]; } return (*(lbData->listBucketCallback)) (isTruncated, lbData->nextMarker, contentsCount, contents, commonPrefixesCount, (const char **) commonPrefixes, lbData->callbackData); }
void XMLMesh::readCells(const xmlChar *name, const xmlChar **attrs) { // Parse values this->numCells = parseUnsignedInt(name, attrs, "size"); };
void XMLMesh::readVertices(const xmlChar *name, const xmlChar **attrs) { // Parse values unsigned int num_vertices = parseUnsignedInt(name, attrs, "size"); // Set number of vertices this->coords = new double[num_vertices*this->embedDim]; };