int main() { array_ptr(); return 0; }
static bool run_testcase(const config_t *config, const char *basepath, const char *filename) { char buff[BUFSIZ]; char *end; query_t query; const char *eol = read_query(basepath, filename, buff, &end, &query); if (eol == NULL) { return false; } bool ok = true; filter_context_t context; filter_context_prepare(&context, NULL); while (eol < end) { char *neol = memchr(eol, '\n', end - eol); if (neol == NULL) { neol = end; } *neol = '\0'; char *sep = memchr(eol, '=', neol - eol); if (sep == NULL) { eol = neol + 1; err("missing separator"); continue; } *sep = '\0'; int pos = filter_find_with_name(&config->filters, eol); if (pos == -1) { err("Unknown filter %s", eol); eol = neol + 1; continue; } ++sep; filter_result_t result = hook_tokenize(sep, neol - sep); if (result == HTK_UNKNOWN) { err("Unknown filter result %.*s", (int) (neol - sep), sep); eol = neol + 1; continue; } filter_t *filter = array_ptr(config->filters, pos); #define TEST(Name, Run) \ do { \ bool __test = (Run); \ printf(" test %s: %s\n", Name, __test ? "SUCCESS" : "FAILED"); \ ok = ok && __test; \ } while (0) TEST(filter->name, filter_test(filter, &query, &context, result)); eol = neol + 1; } filter_context_wipe(&context); return ok; }
//--------------------------------------------------------------------------- // SimpleDataItem::getData //--------------------------------------------------------------------------- cdma::IArrayPtr SimpleDataItem::getData(std::vector<int> origin, std::vector<int> shape) throw ( cdma::Exception ) { CDMA_FUNCTION_TRACE("SimpleDataItem::getData(vector<int> origin, vector<int> shape)"); int rank = m_array_ptr->getRank(); int* iShape = new int[rank]; int* iStart = new int[rank]; for( int i = 0; i < rank; i++ ) { iStart[i] = origin[i]; iShape[i] = shape[i]; } cdma::IViewPtr view(new cdma::View( rank, iShape, iStart )); //## Should pass the shared pointer rather than a pointer to the referenced object cdma::IArrayPtr array_ptr(new cdma::Array( m_array_ptr, view )); return array_ptr; }
/// create an empty array /// var var::new_array() { return var(array_ptr(new array_t)); }