e_int32 dm_free(data_manager_t *dm, int save) { int i, ret; e_assert(dm, E_ERROR_INVALID_HANDLER); DMSG((STDOUT,"dm_free close file save?%d\n",save)); #if START_VIDEO_SERVER socket_video_server_stop(); #endif if (display.buf) gray_to_jpeg_file(dm->gray_file, display.buf, display.w, display.h); ret = da_close(&dm->adapters_point_cloud, save); e_check(ret<=0); ret = da_close(&dm->adapters_gray, save); e_check(ret<=0); fi_close(&dm->f_tunable); if (dm->points_xyz) free(dm->points_xyz); if (dm->points_gray) free(dm->points_gray); free(dm); uninit_display(); return E_OK; }
int main() { data_adapter_t da; unsigned char file_name[][64] = { "test.pcd1", "test.jpg", "test.gif", "/data/local/tmp/test.sprite" }; da_open(&da, file_name[3], W, H, E_DWRITE); //data_adapter_t *da, e_uint8 *name, int mode point_array = malloc_points(PNT_TYPE_GRAY,H); points_gray = (point_gray_t*)point_array->mem; for (int i = 0; i < H; i++) points_gray[i].gray = 80; for (int i = 0; i < W; i++) da_write_column(&da,i, point_array, 0); for (int i = 0; i < H; i++) points_gray[i].gray = 160; for (int i = 0; i < W; i++) da_write_column(&da, W - i - 1, point_array, 1); // point_array = malloc_points(PNT_TYPE_XYZ, H); // points = (point_xyz_t*) point_array->mem; // // for (int i = 0; i < H; i++) { // points[i].x = H * sin(i * M_PI / H); // points[i].y = H * cos(i * M_PI / H); // points[i].z = H * sin(M_PI - i * M_PI / H); // } // // for (int i = 0; i < W; i++) // da_append_points(&da, point_array, H, 0); // // for (int i = 0; i < H; i++) { // points[i].x += 100; // points[i].y += 100; // points[i].z += 100; // } // // for (int i = 0; i < W; i++) // da_append_points(&da, point_array, H, 1); // da_close(&da); free_points(point_array); printf("ALL TEST PASSED!\n"); return 0; }
int trie_close (Trie *trie) { if (!trie) return -1; if (da_close (trie->da) != 0) return -1; if (tail_close (trie->tail) != 0) return -1; free (trie); return 0; }
/*E_READ,E_WRITE*/ e_int32 dm_free(data_manager_t *dm) { int i, ret; data_adapter_t* pda; e_assert(dm, E_ERROR_INVALID_HANDLER); pda = dm->adapters; for (i = 0; i < dm->num; i++) { ret = da_close(&pda[i]); e_check(ret<=0); DMSG((STDOUT,"Close %d da\n",i+1)); } free(dm); return E_OK; }
static int da_haproxy(const struct arg *args, struct sample *smp, da_deviceinfo_t *devinfo) { struct buffer *tmp; da_propid_t prop, *pprop; da_status_t status; da_type_t proptype; const char *propname; int i; tmp = get_trash_chunk(); chunk_reset(tmp); propname = (const char *) args[0].data.str.area; i = 0; for (; propname != 0; i ++, propname = (const char *) args[i].data.str.area) { status = da_atlas_getpropid(&global_deviceatlas.atlas, propname, &prop); if (status != DA_OK) { chunk_appendf(tmp, "%c", global_deviceatlas.separator); continue; } pprop = ∝ da_atlas_getproptype(&global_deviceatlas.atlas, *pprop, &proptype); switch (proptype) { case DA_TYPE_BOOLEAN: { bool val; status = da_getpropboolean(devinfo, *pprop, &val); if (status == DA_OK) { chunk_appendf(tmp, "%d", val); } break; } case DA_TYPE_INTEGER: case DA_TYPE_NUMBER: { long val; status = da_getpropinteger(devinfo, *pprop, &val); if (status == DA_OK) { chunk_appendf(tmp, "%ld", val); } break; } case DA_TYPE_STRING: { const char *val; status = da_getpropstring(devinfo, *pprop, &val); if (status == DA_OK) { chunk_appendf(tmp, "%s", val); } break; } default: break; } chunk_appendf(tmp, "%c", global_deviceatlas.separator); } da_close(devinfo); if (tmp->data) { --tmp->data; tmp->area[tmp->data] = 0; } smp->data.u.str.area = tmp->area; smp->data.u.str.data = tmp->data; return 1; }