static void test_mount() { printf ("test mount backend\n"); KDB *kdb = kdb_new(); elektraMountBackend (kdb, b_new("user", "user"), 0); succeed_if (kdb->trie, "there should be a trie"); Key *mp = keyNew ("user", KEY_VALUE, "user", KEY_END); Key *sk = keyNew ("user", KEY_VALUE, "user", KEY_END); succeed_if (kdb->split->size == 1, "size of split not correct"); compare_key(mp, kdb->split->parents[0]); compare_key(elektraMountGetBackend (kdb, sk)->mountpoint, mp); compare_key(elektraMountGetMountpoint (kdb, sk), mp); keySetName (sk, "user/below"); compare_key(elektraMountGetBackend (kdb, sk)->mountpoint, mp); compare_key(elektraMountGetMountpoint (kdb, sk), mp); keySetName (sk, "system"); kdb->defaultBackend = b_new("", "default"); succeed_if (elektraMountGetBackend (kdb, sk) == kdb->defaultBackend, "did not return default backend"); keySetName (mp, ""); keySetString (mp, "default"); compare_key(elektraMountGetBackend (kdb, sk)->mountpoint, mp); compare_key(elektraMountGetMountpoint (kdb, sk), mp); keyDel (sk); keyDel (mp); kdb_del (kdb); }
static inline blob_t * buf_to_blob_enqueue(char *buf, size_t size) { blob_t *b; if (size == 0) { if (0) WARN("Received 0 byte packet, not forwarding."); return NULL; } RELAY_ATOMIC_INCREMENT( RECEIVED_STATS.received_count, 1 ); b = b_new(size); memcpy(BLOB_BUF_addr(b), buf, size); enqueue_blob_for_transmission(b); return b; }
void connect_joints(Joint* c, SimpleNodeEditor* sneditor, ICameraSceneNode* camera, blist &tree_list) { auto connect_two_joints = [&] () { vec3 dir = c->posA; dir.normalize(); dir = dir * (c->posB.absolute_value() + c->posA.absolute_value()); c->B->node->setPosition(c->A->node->getPosition() + dir.irr() ); c->B->shadow->setPosition(c->B->node->getPosition() * vector3df(1,1,0) + vector3df(0,0,10)); if (c->B->node == sneditor->selected_node) { // set cursor position2d<s32> screen_coord = irrlicht->colmgr->getScreenCoordinatesFrom3DPosition(c->B->node->getPosition(), camera); sneditor->cursor->setPosition((s4)((screen_coord.X) ), (s4)((screen_coord.Y))); sneditor->cursor_prev_pos = vec2(sneditor->cursor->getPosition().X, sneditor->cursor->getPosition().Y); } }; if (c->A->tree == 0 && c->B->tree == 0) { CTree* new_tree = (CTree*)b_new(tree_list); b_set(new_tree->child_list,memory,sizeof(void*)); b_copy_ptr(new_tree->child_list,c->A); b_copy_ptr(new_tree->child_list,c->B); new_tree->translation = vec3(0,0,0); c->A->tree = new_tree; c->B->tree = new_tree; connect_two_joints();// (c,sneditor,camera); } else if (c->A->tree != 0 && c->B->tree == 0) { CTree* existing_tree = c->A->tree; b_copy_ptr(existing_tree->child_list,c->B); c->B->tree = existing_tree; connect_two_joints();// (c,sneditor,camera); } else if (c->A->tree == 0 && c->B->tree != 0) { CTree* existing_tree = c->B->tree; // connect them while i still have the child tree vec3 prev_pos = c->B->node->getPosition(); connect_two_joints();// (c,sneditor,camera); vec3 curr_pos = c->B->node->getPosition(); vec3 translation = curr_pos - prev_pos; // update tree for (s4 k = 0; k < existing_tree->child_list.length; k++) { Component* cmpnt = (Component*)b_get_value(existing_tree->child_list,k); if (c->B == cmpnt) { continue; } cmpnt->node->setPosition(cmpnt->node->getPosition() + translation.irr()); cmpnt->shadow->setPosition(cmpnt->node->getPosition() * vector3df(1,1,0) + vector3df(0,0,10)); } b_copy_ptr(existing_tree->child_list,c->A); c->A->tree = existing_tree; } else /* c->A and c->B have trees */ { // TODO: translates (i think) the wrong way when // approaching from *inside* the large green rectangle if (c->A->tree != c->B->tree) // if tree is not connecting to itself { CTree* master_tree = c->A->tree; CTree* child_tree = c->B->tree; // connect them while i still have the child tree vec3 prev_pos = c->B->node->getPosition(); connect_two_joints();// (c,sneditor,camera); vec3 curr_pos = c->B->node->getPosition(); vec3 translation = curr_pos - prev_pos; // update tree for (s4 k = 0; k < child_tree->child_list.length; k++) { Component* cmpnt = (Component*)b_get_value(child_tree->child_list,k); if (c->B == cmpnt) { continue; } cmpnt->node->setPosition(cmpnt->node->getPosition() + translation.irr()); cmpnt->shadow->setPosition(cmpnt->node->getPosition() * vector3df(1,1,0) + vector3df(0,0,10)); } // add c->B->tree components to c->A->tree for (s4 k = 0; k < child_tree->child_list.length; k++) { Component* cmpnt = (Component*)b_get_value(child_tree->child_list,k); b_copy_ptr(master_tree->child_list,cmpnt); cmpnt->tree = master_tree; } child_tree->child_list.length = 0; } } return; }