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

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

?? gameswf_xmlsocket.cpp

?? 一個開源的嵌入式flash播放器 具體看文檔和例子就可
?? 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一区二区三区免费野_久草精品视频
亚洲精品亚洲人成人网在线播放| 黑人巨大精品欧美黑白配亚洲| 亚洲超丰满肉感bbw| 激情五月婷婷综合| 日韩美女视频一区二区在线观看| 精品电影一区二区| 亚洲bt欧美bt精品| av亚洲精华国产精华精华| 日韩免费看网站| 亚洲成人综合网站| 一本大道久久精品懂色aⅴ| 精品国产一区a| 日本三级亚洲精品| 欧美做爰猛烈大尺度电影无法无天| 国产亚洲制服色| 九九热在线视频观看这里只有精品| 欧美色视频在线观看| 亚洲欧洲av在线| 91精品国产综合久久精品图片| 国产精品理论在线观看| 国产一区二区三区在线观看免费视频| 欧美人狂配大交3d怪物一区| 亚洲精品老司机| 91在线视频网址| 亚洲视频资源在线| 成人av综合一区| 国产精品理伦片| 成人av集中营| 国产精品久久久久一区二区三区共| 国产美女精品人人做人人爽| 日韩免费看的电影| 男人的天堂亚洲一区| 欧美一级日韩不卡播放免费| 日韩和欧美的一区| 日韩网站在线看片你懂的| 青娱乐精品视频在线| 欧美一二三在线| 久久99国产精品麻豆| 精品理论电影在线观看| 国内成人免费视频| 国产女人18毛片水真多成人如厕| 国产福利一区二区| 国产精品色一区二区三区| 丁香婷婷综合五月| 国产精品国产三级国产aⅴ入口 | 久久综合色鬼综合色| 精品一区二区三区免费视频| 久久精品欧美日韩精品| 国产不卡视频一区二区三区| 国产精品久久毛片av大全日韩| 91免费看视频| 日韩中文字幕av电影| 日韩午夜av电影| 国产不卡高清在线观看视频| 亚洲精品视频在线观看网站| 欧美视频在线观看一区二区| 蜜臀久久99精品久久久画质超高清| 26uuu成人网一区二区三区| 成人免费视频caoporn| 91精品国产一区二区三区蜜臀| 美女国产一区二区| 国产精品三级视频| 欧美日韩一区二区三区在线| 国模大尺度一区二区三区| 日韩理论片一区二区| 7777精品伊人久久久大香线蕉| 激情国产一区二区 | 一个色妞综合视频在线观看| 69久久99精品久久久久婷婷 | 欧美成人vps| av综合在线播放| 日韩av电影天堂| 一区在线播放视频| 日韩欧美国产一区二区在线播放 | 久久精品国产澳门| 国产精品久久久久久久久搜平片 | 日韩午夜精品视频| 99久久婷婷国产| 看电影不卡的网站| 亚洲午夜久久久久久久久电影院 | 成人欧美一区二区三区黑人麻豆| 欧美日韩你懂得| eeuss鲁片一区二区三区在线观看| 图片区日韩欧美亚洲| 国产精品高清亚洲| 日韩欧美国产三级| 欧美影片第一页| 91一区一区三区| 国产精品一区二区久久不卡| 日韩av一级片| 一区二区成人在线观看| 亚洲国产高清aⅴ视频| 日韩欧美一级二级| 在线播放91灌醉迷j高跟美女| 99精品国产热久久91蜜凸| 国产一区二区三区av电影| 人人精品人人爱| 亚洲第四色夜色| 一区二区三区小说| 中文字幕在线观看一区| 国产日产精品1区| 久久伊人中文字幕| 日韩一区二区三免费高清| 欧美色精品在线视频| 日本乱人伦aⅴ精品| 99精品欧美一区二区蜜桃免费| 国产精品小仙女| 国产一区二区三区久久悠悠色av | 国产成人免费av在线| 美女任你摸久久| 蜜桃视频在线观看一区| 蜜臀av在线播放一区二区三区| 性感美女久久精品| 天堂va蜜桃一区二区三区| 亚洲成av人片一区二区梦乃| 亚洲国产视频直播| 亚洲影院免费观看| 性做久久久久久免费观看欧美| 亚洲一区视频在线| 亚洲午夜久久久| 午夜精品一区二区三区免费视频| 亚洲综合色区另类av| 亚洲午夜久久久| 日韩av中文字幕一区二区| 日本va欧美va精品发布| 免费观看一级欧美片| 久久爱另类一区二区小说| 国产一区二区三区蝌蚪| 成人中文字幕合集| 99精品久久只有精品| 在线一区二区观看| 7777精品伊人久久久大香线蕉完整版| 91精品国产乱| 国产欧美日产一区| 亚洲激情在线激情| 日本中文字幕一区二区有限公司| 另类专区欧美蜜桃臀第一页| 国内外精品视频| 91在线观看一区二区| 欧美二区三区的天堂| 欧美成人video| 中文成人av在线| 亚洲国产精品久久人人爱| 麻豆91在线观看| 91在线一区二区| 欧美一区欧美二区| 日本一区二区三区四区在线视频| 亚洲乱码国产乱码精品精98午夜| 亚洲sss视频在线视频| 国产一区激情在线| 日本丰满少妇一区二区三区| 欧美成人三级电影在线| 中文字幕在线不卡视频| 日韩激情一二三区| 成人app网站| 欧美一区二区在线免费观看| 国产精品麻豆网站| 久久精品免费观看| 在线观看日韩电影| 久久精品视频网| 男人的j进女人的j一区| 99精品欧美一区| 久久久精品国产免费观看同学| 亚洲欧美国产三级| 国产成人免费av在线| 欧美日韩高清一区二区三区| 欧美韩国日本不卡| 免费人成在线不卡| 色综合久久久久综合| www成人在线观看| 午夜在线成人av| 99免费精品在线| 国产欧美一区二区精品性色超碰 | 国产精品 日产精品 欧美精品| 欧美三级一区二区| ...xxx性欧美| 国产91精品免费| 久久新电视剧免费观看| 日韩中文欧美在线| 欧美在线观看一二区| 国产精品大尺度| 国产91丝袜在线观看| 欧美精品一区二区三区蜜桃视频 | 亚洲视频图片小说| 大尺度一区二区| 久久综合九色综合欧美98| 日韩av中文在线观看| 欧美日韩精品一区视频| 一区二区三区在线播放| 色综合久久天天| 亚洲天堂av老司机| av一区二区三区| 国产精品久久二区二区| 国产99久久久精品| 日本一区二区三区四区在线视频| 国产一区中文字幕| 精品理论电影在线观看| 激情综合色播五月| 久久夜色精品一区| 国产成a人亚洲精品|