亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gameswf_xmlsocket.cpp

?? 一個開源的Flash 播放器,可以在Windows/Linux 上運行
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
}voidXMLSocket::push(as_object_interface *obj){  _nodes.push_back(obj);}voidXMLSocket::clear(){  int i;  for (i=0; i< _nodes.size(); i++) {    delete _nodes[i];  }}intXMLSocket::count(){  return _nodes.size();}intXMLSocket::checkSockets(void){  return checkSockets(_sockfd);}intXMLSocket::checkSockets(int fd){  fd_set                fdset;  int                   ret = 0;  struct timeval        tval;  //log_msg("%s:\n", __FUNCTION__);  FD_ZERO(&fdset);  FD_SET(fd, &fdset);    tval.tv_sec = 2;  tval.tv_usec = 10;    ret = ::select(fd+1, &fdset, NULL, NULL, &tval); // &tval    // If interupted by a system call, try again  if (ret == -1 && errno == EINTR) {    log_msg("The socket for fd #%d was interupted by a system call in this thread!\n",            fd);  }  if (ret == -1) {    log_error("The socket for fd #%d never was available!\n", fd);  }  if (ret == 0) {    printf("There is no data in the socket for fd #%d!\n", fd);  }  if (ret > 0) {    //printf("There is data in the socket for fd #%d!\n", fd);          }    return ret;}voidxmlsocket_connect(const fn_call& fn){  as_value	method;  as_value	val;  static bool first = true;     // This event handler should only be executed once.  bool          ret;  const array<with_stack_entry> with_stack;  if (!first) {    fn.result->set(true);    return;  }    log_msg("%s: nargs=%d\n", __FUNCTION__, fn.nargs);  xmlsocket_as_object*	ptr = (xmlsocket_as_object*) (as_object*) fn.this_ptr;  assert(ptr);  const tu_string host = fn.env->bottom(fn.first_arg_bottom_index).to_string();  tu_string port_str = fn.env->bottom(fn.first_arg_bottom_index-1).to_tu_string();  double port = atof(port_str.c_str());  ret = ptr->obj.connect(host, static_cast<int>(port));#if 0  // Push result onto stack for onConnect  if (ret) {    fn.env->push(as_value(true));  }  else {    fn.env->push(as_value(false));  }#endif  fn.env->push(as_value(true));  if (fn.this_ptr->get_member("onConnect", &method)) {    //    log_msg("FIXME: Found onConnect!\n");    as_c_function_ptr	func = method.to_c_function();    first = false;    //env->set_variable("success", true, 0);    if (func) {      // It's a C function.  Call it.      log_msg("Calling C function for onConnect\n");      (*func)(fn_call(&val, fn.this_ptr, fn.env, 0, 0));    }    else if (as_as_function* as_func = method.to_as_function()) {      // It's an ActionScript function.  Call it.      log_msg("Calling ActionScript function for onConnect\n");      (*as_func)(fn_call(&val, fn.this_ptr, fn.env, 2, 2));    } else {      log_error("error in call_method(): method is not a function\n");    }      } else {    //ptr->set_event_handler(event_id::SOCK_CONNECT, (as_c_function_ptr)&xmlsocket_event_connect);  }#if 1  movie*	mov = fn.env->get_target()->get_root_movie();  Timer *timer = new Timer;  as_c_function_ptr ondata_handler =    (as_c_function_ptr)&xmlsocket_event_ondata;  timer->setInterval(ondata_handler, 50, ptr, fn.env);  timer->setObject(ptr);  mov->add_interval_timer(timer);#endif  fn.env->pop();    fn.result->set(true);}voidxmlsocket_send(const fn_call& fn){  as_value	method;  as_value	val;    xmlsocket_as_object*	ptr = (xmlsocket_as_object*) (as_object*) fn.this_ptr;  assert(ptr);  const tu_string object = fn.env->bottom( fn.first_arg_bottom_index).to_string();  //  log_msg("%s: host=%s, port=%g\n", __FUNCTION__, host, port);  fn.result->set(ptr->obj.send(object));}voidxmlsocket_close(const fn_call& fn){  as_value	method;  as_value	val;    xmlsocket_as_object*	ptr = (xmlsocket_as_object*) (as_object*) fn.this_ptr;  assert(ptr);  // Since the return code from close() doesn't get used by Shockwave,  // we don't care either.  ptr->obj.close();}voidxmlsocket_xml_new(const fn_call& fn){  //log_msg("%s: nargs=%d\n", __FUNCTION__, nargs);    xml_new(fn);}voidxmlsocket_new(const fn_call& fn){  //log_msg("%s: nargs=%d\n", __FUNCTION__, nargs);    as_object*	xmlsock_obj = new xmlsocket_as_object;  //log_msg("\tCreated New XMLSocket object at 0x%X\n", (unsigned int)xmlsock_obj);  xmlsock_obj->set_member("connect", &xmlsocket_connect);  xmlsock_obj->set_member("send", &xmlsocket_send);  xmlsock_obj->set_member("close", &xmlsocket_close);  xmlsock_obj->set_member("Connected", true);  // swf_event*	ev = new swf_event;  // m_event_handlers.push_back(ev);  // Setup event handlers#if 0  xmlsock_obj->set_event_handler(event_id::SOCK_DATA,                                 (as_c_function_ptr)&xmlsocket_event_ondata);  xmlsock_obj->set_event_handler(event_id::SOCK_CLOSE,                                 (as_c_function_ptr)&xmlsocket_event_close);  // 							xmlsock_obj->set_event_handler(event_id::SOCK_CONNECT,  // 									       (as_c_function_ptr)&xmlsocket_event_connect);  xmlsock_obj->set_event_handler(event_id::SOCK_XML,                                 (as_c_function_ptr)&xmlsocket_event_xml);#endif  //periodic_events.set_event_handler(xmlsock_obj);    #if 1  //as_c_function_ptr int_handler = (as_c_function_ptr)&timer_setinterval;  //env->set_member("setInterval", int_handler);  fn.env->set_member("setInterval", timer_setinterval);    //as_c_function_ptr clr_handler = timer_clearinterval;  fn.env->set_member("clearInterval", timer_clearinterval);  //env->set_variable("setInterval", int_handler, 0);  //xmlsock_obj->set_event_handler(event_id::TIMER,  //       (as_c_function_ptr)&timer_expire);#if 0  Timer *timer = new Timer;  as_c_function_ptr ondata_handler =    (as_c_function_ptr)&xmlsocket_event_ondata;  timer->setInterval(ondata_handler, 10);  timer->setObject(xmlsock_obj);  current_movie->add_interval_timer(timer);#endif    fn.result->set(xmlsock_obj);  // Tune malloc for the best performance  //mallopt(M_MMAP_MAX,0);  //mallopt(M_TRIM_THRESHOLD,-1);  //mallopt(M_MMAP_THRESHOLD,16);#endif}voidxmlsocket_event_ondata(const fn_call& fn){  //log_msg("%s: nargs is %d\n", __FUNCTION__, nargs);      as_value	method;  as_value	val;  as_value      datain;  array<const char *> msgs;  char          *messages[200];  int           i;  as_c_function_ptr	func;  as_as_function*       as_func;  tu_string     data;   xmlsocket_as_object*	ptr = (xmlsocket_as_object*)fn.this_ptr;  assert(ptr);  if (ptr->obj.processingData()) {    log_msg("Still processing data!\n");    fn.result->set(false);    return;  }    memset(messages, 0, sizeof(char *)*200);  #ifndef USE_DMALLOC  //dump_memory_stats(__FUNCTION__, __LINE__, "memory checkpoint");#endif    if (ptr->obj.anydata(messages)) {    if (fn.this_ptr->get_member("onData", &method)) {      func = method.to_c_function();      as_func = method.to_as_function();      //log_msg("Got %d messages from XMLsocket\n", msgs.size());      //      for (i=0; i<msgs.size(); i++) {      for (i=0; messages[i] != 0; i++) {//          log_msg("Got message #%d, %d bytes long at %p: %s: \n", i,//                  strlen(messages[i]), messages[i], messages[i]);        datain = messages[i];        //fn.env->push(datain);#ifndef USE_DMALLOC        //dump_memory_stats(__FUNCTION__, __LINE__, "start");#endif        as_environment *env = new as_environment;        env->push(datain);        if (func) {          // It's a C function.  Call it.          //log_msg("Calling C function for onData\n");          (*func)(fn_call(&val, fn.this_ptr, env, 1, 0));        } else if (as_func) {          // It's an ActionScript function.  Call it.          //log_msg("Calling ActionScript function for onData, processing msg %d\n", i);          (*as_func)(fn_call(&val, fn.this_ptr, env, 1, 0));        } else {          log_error("error in call_method(): method is not a function\n");        }        env->pop();        delete env;#ifndef USE_DMALLOC        //dump_memory_stats(__FUNCTION__, __LINE__, "end");#endif          //log_msg("Deleting message #%d at %p\n", i, messages[i]);        //delete messages[i];        //fn.env->pop();        datain.set_undefined();      }      ptr->obj.processing(false);    } else {      log_error("Couldn't find onData!\n");    }    // Delete this in a batch for now so we can track memory allocation    for (i=0; messages[i] != 0; i++) {      //log_msg("Deleting message #%d at %p\n", i, messages[i]);      delete messages[i];    }  }  //malloc_trim(0);    //result->set(&data);  fn.result->set(true);}voidxmlsocket_event_close(const fn_call& fn){#if 0  as_value* result = fn.result;  as_object_interface* this_ptr = fn.this_ptr;  int nargs = fn.nargs;  int first_arg = fn.first_arg_bottom_index;#else  log_error("%s: unimplemented!\n", __FUNCTION__);#endif}voidxmlsocket_event_connect(const fn_call& fn){  as_value	method;  as_value	val;  tu_string     data;  static bool first = true;     // This event handler should only be executed once.  if (!first) {    fn.result->set(true);    return;  }    xmlsocket_as_object*	ptr = (xmlsocket_as_object*) (as_object*) fn.this_ptr;  assert(ptr);  log_msg("%s: connected = %d\n", __FUNCTION__, ptr->obj.connected());  if ((ptr->obj.connected()) && (first)) {    first = false;    //env->set_variable("success", true, 0);    //env->bottom(0) = true;    if (fn.this_ptr->get_member("onConnect", &method)) {      as_c_function_ptr	func = method.to_c_function();      if (func)        {          // It's a C function.  Call it.          //log_msg("Calling C function for onConnect\n");          (*func)(fn_call(&val, fn.this_ptr, fn.env, 0, 0));      }      else if (as_as_function* as_func = method.to_as_function())        {          // It's an ActionScript function.  Call it.          //log_msg("Calling ActionScript function for onConnect\n");          (*as_func)(fn_call(&val, fn.this_ptr, fn.env, 0, 0));        }      else        {          log_error("error in call_method(): method is not a function\n");        }        } else {      log_msg("FIXME: Couldn't find onConnect!\n");    }  }  fn.result->set(&val); }voidxmlsocket_event_xml(const fn_call& fn){#if 0  as_value* result = fn.result;  as_object_interface* this_ptr = fn.this_ptr;  int nargs = fn.nargs;  int first_arg = fn.first_arg_bottom_index;#else  log_error("%s: unimplemented!\n", __FUNCTION__);#endif  }static XMLSocket xs;intcheck_sockets(int x){  //log_msg("%s unimplemented\n", __FUNCTION__);  if (xml_fd == 0) {    return -1;  }    return xs.checkSockets(x);}} // end of gameswf namespace// HAVE_LIBXML#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区久久久久久| 午夜欧美在线一二页| 一区二区视频免费在线观看| 日韩av电影天堂| av在线不卡电影| 欧美va亚洲va香蕉在线| 亚洲靠逼com| 国产精品77777| 91精品国产色综合久久不卡蜜臀| 国产精品高清亚洲| 亚洲福利一区二区三区| 不卡大黄网站免费看| 日韩精品专区在线| 日韩激情中文字幕| 97精品国产97久久久久久久久久久久| 日本成人在线一区| 91在线视频播放地址| 国产亚洲欧洲一区高清在线观看| 欧美xxx久久| 亚洲成av人片在线| 欧美在线视频你懂得| 亚洲日韩欧美一区二区在线| 国产精品18久久久久久久久| 精品免费视频一区二区| 日韩av电影天堂| 51精品国自产在线| 天堂久久一区二区三区| 色综合婷婷久久| 亚洲欧美中日韩| 99久久综合精品| 国产精品久久99| 成人av中文字幕| 国产精品久久毛片av大全日韩| 亚洲人成伊人成综合网小说| 懂色一区二区三区免费观看| 久久蜜桃一区二区| 高清不卡一二三区| 国产精品不卡一区二区三区| 国产98色在线|日韩| 欧美极品另类videosde| 成人综合日日夜夜| 亚洲视频在线一区| 欧洲国产伦久久久久久久| 亚洲国产一区二区三区| 91精品蜜臀在线一区尤物| 奇米一区二区三区av| 日韩欧美国产1| 国产suv精品一区二区883| 国产精品国产精品国产专区不片| 日韩av一级电影| 2023国产一二三区日本精品2022| 亚洲欧洲日产国产综合网| 91美女片黄在线观看| 亚洲成人tv网| 欧美精品一区在线观看| 国产成人8x视频一区二区| 亚洲欧美另类在线| 欧美午夜影院一区| 欧美aⅴ一区二区三区视频| 久久嫩草精品久久久久| 97精品电影院| 蜜臀av性久久久久蜜臀av麻豆| 色婷婷综合在线| 日韩国产精品91| 国产欧美综合色| 欧美日韩在线播放三区四区| 精品一区免费av| 欧美一区二区三区免费| 美腿丝袜亚洲综合| 欧美手机在线视频| 午夜欧美在线一二页| 国产高清成人在线| 国产精品女人毛片| 91网站在线播放| 亚洲欧美另类久久久精品| 欧美一区二区观看视频| 成人一区二区三区中文字幕| 亚洲成人av免费| 国产精品美女久久久久aⅴ| 欧美视频在线播放| 国产不卡高清在线观看视频| 日韩高清不卡一区二区三区| 中文字幕av不卡| 337p亚洲精品色噜噜| 91美女视频网站| 国产成人在线视频网站| 国产成人综合在线播放| 亚洲午夜在线视频| 久久99国产精品久久99果冻传媒| 国产亚洲一区字幕| 狠狠色狠狠色综合| 亚洲国产中文字幕| 亚洲欧洲精品一区二区三区不卡| 成人免费视频caoporn| 日日欢夜夜爽一区| 亚洲精品中文在线影院| 久久这里只有精品首页| 欧美色倩网站大全免费| 99精品视频一区| 国产精品白丝av| 九色|91porny| 青青草国产成人99久久| 天堂久久久久va久久久久| 亚洲男女一区二区三区| 国产精品久久久久久久久图文区 | 成人av在线网| 日韩av不卡一区二区| 五月天国产精品| 亚洲一区av在线| 亚洲综合男人的天堂| 亚洲欧美激情小说另类| 久久九九99视频| 久久伊人蜜桃av一区二区| 日韩精品一区二区三区蜜臀 | 国产精品一二三四| 久久不见久久见中文字幕免费| 久久中文娱乐网| 久久女同互慰一区二区三区| 亚洲精品一区二区三区影院| 日韩精品最新网址| 欧美精品一区二区在线观看| 久久亚洲捆绑美女| 久久久久国产成人精品亚洲午夜| 9人人澡人人爽人人精品| 成人av网在线| 91蝌蚪porny| 欧美亚洲国产bt| 制服视频三区第一页精品| 日韩欧美一区二区在线视频| 在线电影院国产精品| 在线不卡a资源高清| 欧美www视频| 国产色产综合色产在线视频| 国产精品电影院| 丝袜亚洲另类欧美综合| 老司机精品视频线观看86| 黄页网站大全一区二区| 成人一二三区视频| 欧美自拍偷拍一区| 日韩欧美电影在线| 国产精品美女www爽爽爽| 亚洲国产日韩综合久久精品| 亚洲超丰满肉感bbw| 精油按摩中文字幕久久| 成人性生交大片| 欧美色手机在线观看| 精品国产乱码久久久久久老虎| 欧美色大人视频| 久久中文字幕电影| 一区二区三区四区五区视频在线观看| 日韩一区二区免费电影| 久久午夜羞羞影院免费观看| 中文字幕精品—区二区四季| 亚洲成av人影院| 粉嫩一区二区三区性色av| 欧美在线观看视频一区二区 | 美女精品一区二区| 国产 欧美在线| 欧美久久一二三四区| 国产女人18毛片水真多成人如厕| 在线播放日韩导航| 欧美激情综合五月色丁香小说| 欧美成人女星排名| 中文字幕一区二区三区在线播放| 日韩欧美国产精品| 亚洲精品精品亚洲| 久久精品国产77777蜜臀| 91麻豆精品视频| 久久综合网色—综合色88| 亚洲国产欧美另类丝袜| 高清免费成人av| 欧美mv日韩mv国产网站| 亚洲一区二区视频在线| 国产成人av一区二区三区在线 | 一区二区不卡在线视频 午夜欧美不卡在| 久久久久亚洲综合| 五月婷婷色综合| 91丨九色丨国产丨porny| ww亚洲ww在线观看国产| 亚洲国产精品一区二区www在线| 一区二区三区在线免费| 国产精品亚洲专一区二区三区| 激情六月婷婷久久| 正在播放亚洲一区| 一级做a爱片久久| 不卡的av网站| 欧美激情一区在线| 国产精品一区二区不卡| 欧美xxxxx牲另类人与| 午夜精品免费在线观看| 在线一区二区三区四区五区 | 欧洲中文字幕精品| 国产精品理伦片| 成人涩涩免费视频| 国产欧美精品区一区二区三区 | 日韩在线播放一区二区| 色就色 综合激情| 亚洲免费在线视频一区 二区| 亚洲国产一区视频| 欧美系列亚洲系列|