TEST_F(MouseControllerUnitTestBase, ShiftUnexpected) { MouseController mc(root); //处理意外情况 没有up直接leave MouseEvent down1(kET_MOUSE_DOWN, kMB_LEFT, root, Point::Make(45, 45), Point::Make(45, 45), 0); mc.handleEvent(down1); EXPECT_EQ(v31, mc.capture()); MouseEvent move1(kET_MOUSE_MOVE, kMB_NONE, root, Point::Make(29, 20), Point::Make(29, 20), 0); mc.handleEvent(move1); EXPECT_EQ(v31, mc.capture()); MouseEvent leave1(kET_MOUSE_LEAVE, kMB_NONE, root, Point::Make(45, 45), Point::Make(45, 45), 0); mc.handleEvent(leave1); EXPECT_EQ(nullptr, mc.capture()); EXPECT_EQ(nullptr, mc.over()); //当前capture 没有mouseable属性 mc.handleEvent(down1); EXPECT_EQ(v31, mc.capture()); v31->setMouseable(false); mc.handleEvent(move1); EXPECT_EQ(nullptr, mc.capture()); EXPECT_EQ(v2, mc.over()); v31->setMouseable(true); //当前capture 被remove mc.handleEvent(down1); EXPECT_EQ(v31, mc.capture()); v31->detachFromParent(); mc.handleEvent(move1); EXPECT_EQ(nullptr, mc.capture()); EXPECT_EQ(v2, mc.over()); }
void sendRequest(request_t request){ int flag = 1; printf("le envio al client: %d req: %d\n", request.PID, request.reqID); while(flag){ enter1(); if(reqC->reqID == EMPTY ){ reqC->price = request.price; memcpy(reqC, &request, sizeof request); flag = 0; } leave1(); sleep(1); } }
request_t receiveRequest(){ int flag = 1; request_t request; printf("leyendo desde: %p\n", reqS); while ( flag ) { enter1(); if ( reqS->reqID != EMPTY ) { printf("Servidor recibe: %d\n", reqS->reqID); memcpy(&request, reqS, sizeof request); reqS->reqID = EMPTY; flag = 0; } leave1(); sleep(1); } return request; }