• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ read_message函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中read_message函数的典型用法代码示例。如果您正苦于以下问题:C++ read_message函数的具体用法?C++ read_message怎么用?C++ read_message使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了read_message函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: mempool_init

void mempool_init()
{

    if(rand()%2 + 1)
        return;

    if(sizeof(struct node)%16 != 0) {
        ShowFatalError(read_message("Source.common.mempool_init"), sizeof(struct node));
        exit(EXIT_FAILURE);
    }

    // Global List start
    InitializeSpinLock(&l_mempoolListLock);
    l_mempoolList = NULL;

    // Initialize mutex + stuff needed for async allocator worker.
    l_async_terminate = 0;
    l_async_lock = ramutex_create();
    l_async_cond = racond_create();

    l_async_thread = rathread_createEx(mempool_async_allocator, NULL, 1024*1024,  RAT_PRIO_NORMAL);
    if(l_async_thread == NULL) {
        ShowFatalError(read_message("Source.common.mempool_init2"));
        exit(EXIT_FAILURE);
    }

}//end: mempool_init()
开发者ID:Mateuus,项目名称:brathena-1,代码行数:27,代码来源:mempool.c


示例2: read_module_request

static char read_module_request(BANG_peer *self) {

    unsigned int *mod_name_length;
    if ((mod_name_length = (unsigned int*) read_message(self,4)) == NULL)
        return 0;

    char *mod_args;
    if ((mod_args = (char*) read_message(self, (*mod_name_length+4))) == NULL)
        return 0;

    // create new buffer to hold peer_id plus module name and version
    char *mod_buffer = (char*)malloc(*mod_name_length+4+sizeof(int));

    *mod_buffer = *mod_args;

    // Set last sizeof(int) bits to peer_id - may not be a good way to do this.
    mod_buffer[*mod_name_length+4] = self->peer_id;

    BANG_sigargs mod_exists_args;

    mod_exists_args.args = (void*) mod_buffer;
    mod_exists_args.length = *mod_name_length+4+sizeof(int);

    free(mod_name_length);

    BANG_send_signal(BANG_MODULE_REQUEST,&mod_exists_args,1);
    free(mod_buffer);
    free(mod_args);

    return 1;
}
开发者ID:nikron,项目名称:bang-2009-eoh-project,代码行数:31,代码来源:bang-read-thread.c


示例3: mempool_node_put

void mempool_node_put(mempool p, void *data)
{
    struct node *node;

    node = DATA_TO_NODE(data);
#ifdef MEMPOOLASSERT
    if(node->magic != NODE_MAGIC) {
        ShowError(read_message("Source.common.mempool_node_put"), p->name,  data);
        return; // lost,
    }

    {
        struct pool_segment *node_seg = node->segment;
        if(node_seg->pool != p) {
            ShowError(read_message("Source.common.mempool_node_put2"), p->name, data, node_seg->pool);
            return;
        }
    }

    // reset used flag.
    node->used = false;
#endif

    //
    EnterSpinLock(&p->nodeLock);
    node->next = p->free_list;
    p->free_list = node;
    LeaveSpinLock(&p->nodeLock);

    InterlockedIncrement64(&p->num_nodes_free);

}//end: mempool_node_put()
开发者ID:Mateuus,项目名称:brathena-1,代码行数:32,代码来源:mempool.c


示例4: read_message

void read_message(itch_map* m, long len, long offset) {

    // done reading
    if (offset >= len) {
        free(data);
        return;
    }

    if (data[offset] == 0x00) {
        offset++;
        read_message(m, len, offset);
    }

    int msg_len = data[offset];
    if (msg_len < 1)  {
           printf("got bad message len, %i\n", data[offset]);
    }
    char* msg = malloc(msg_len);
    for (int i = 0; i < msg_len; i++) {
        msg[i] = data[offset+i];
    }

    itch_emit(m, msg);
    free(msg);

    offset += msg_len + 1;;

    read_message(m, len, offset);
}
开发者ID:hoffoo,项目名称:itch,代码行数:29,代码来源:reader.c


示例5: netbuffer_final

void netbuffer_final() {
    sysint i;

    if(l_nPools > 0) {
        /// .. finalize mempools
        for(i = 0; i < l_nPools; i++) {
            mempool_stats stats = mempool_get_stats(l_pool[i]);

            ShowInfo(read_message("Source.net_buffer_final"), l_poolElemSize[i], stats.peak_nodes_used, stats.num_realloc_events);

            mempool_destroy(l_pool[i]);
        }

        if(l_nEmergencyAllocations > 0) {
            ShowWarning(read_message("Source.net_buffer-final2"), l_nEmergencyAllocations);
            l_nEmergencyAllocations = 0;
        }

        aFree(l_poolElemSize);
        l_poolElemSize = NULL;
        aFree(l_pool);
        l_pool = NULL;
        l_nPools = 0;
    }


}//end: netbuffer_final()
开发者ID:Mateuus,项目名称:brathena-1,代码行数:27,代码来源:netbuffer.c


示例6: mapif_parse_accinfo

/* [Dekamaster/Nightroad] */
void mapif_parse_accinfo(int fd)
{
	int u_fd = RFIFOL(fd,2), aid = RFIFOL(fd,6), castergroup = RFIFOL(fd,10);
	char query[NAME_LENGTH], query_esq[NAME_LENGTH*2+1];
	int account_id;
	char *data;

	safestrncpy(query, (char *) RFIFOP(fd,14), NAME_LENGTH);

	Sql_EscapeString(sql_handle, query_esq, query);

	account_id = atoi(query);

	if(account_id < START_ACCOUNT_NUM) {    // is string
		if(SQL_ERROR == Sql_Query(sql_handle, "SELECT `account_id`,`name`,`class`,`base_level`,`job_level`,`online` FROM `%s` WHERE `name` LIKE '%s' LIMIT 10", char_db, query_esq)
			|| Sql_NumRows(sql_handle) == 0) {
			if(Sql_NumRows(sql_handle) == 0) {
				inter_msg_to_fd(fd, u_fd, aid, read_message("Source.char.inter_parse_accinfo_s1"), query);
			} else {
				Sql_ShowDebug(sql_handle);
				inter_msg_to_fd(fd, u_fd, aid, read_message("Source.char.inter_parse_accinfo_s2"));
			}
			Sql_FreeResult(sql_handle);
			return;
		} else {
			if(Sql_NumRows(sql_handle) == 1) {  //we found a perfect match
				Sql_NextRow(sql_handle);
				Sql_GetData(sql_handle, 0, &data, NULL); account_id = atoi(data);
				Sql_FreeResult(sql_handle);
			} else {// more than one, listing... [Dekamaster/Nightroad]
				inter_msg_to_fd(fd, u_fd, aid, read_message("Source.char.inter_parse_accinfo_s3"), (int)Sql_NumRows(sql_handle));
				while (SQL_SUCCESS == Sql_NextRow(sql_handle)) {
					int class_;
					short base_level, job_level, online;
					char name[NAME_LENGTH];

					Sql_GetData(sql_handle, 0, &data, NULL); account_id = atoi(data);
					Sql_GetData(sql_handle, 1, &data, NULL); safestrncpy(name, data, sizeof(name));
					Sql_GetData(sql_handle, 2, &data, NULL); class_ = atoi(data);
					Sql_GetData(sql_handle, 3, &data, NULL); base_level = atoi(data);
					Sql_GetData(sql_handle, 4, &data, NULL); job_level = atoi(data);
					Sql_GetData(sql_handle, 5, &data, NULL); online = atoi(data);

					inter_msg_to_fd(fd, u_fd, aid, read_message("Source.char.inter_parse_accinfo_s4"), account_id, name, job_name(class_), base_level, job_level, online?"Online":"Offline");
				}
				Sql_FreeResult(sql_handle);
				return;
			}
		}
	}

	/* it will only get here if we have a single match */
	/* and we will send packet with account id to login server asking for account info */
	if(account_id) {
		mapif_on_parse_accinfo(account_id, u_fd, aid, castergroup, fd);
	}

	return;
}
开发者ID:TidusBR,项目名称:brAthena-Old,代码行数:60,代码来源:inter.c


示例7: findMessageEdge

int findMessageEdge(int min, int max, int key, int direction, int edge)
{
   if (max < min)
   {
      return -1;
   }

   int middle;
   int userMid;
   int userBelow;
   middle = (min + max)/2;
   message_t *message = malloc(sizeof(message_t));

   /* read in current middle to compare to matchstring */
   FILE *ifp = NULL;
   char filename [1024];
   sprintf(filename, "../../Data/Messages/message_%07d.dat", middle);
   ifp = fopen(filename, "rb");
   message = read_message(ifp);
   fclose(ifp);
   userMid = message->userID;
   free(message);

   /* catch end-case of mid being first element */
   if (middle == edge)
   {
      if (key == userMid)
      {
         return middle;
      }
      else
      {
         return -1;
      }
   }

   /* Reallocate memory for temporary location*/
   message = malloc(sizeof(message_t));
   sprintf(filename, "../../Data/Messages/message_%07d.dat", middle + direction);
   ifp = fopen(filename, "rb");
   message = read_message(ifp);
   fclose(ifp);
   userBelow = message->userID;
   free(message);

   if(key < userMid  || (direction == -1 && key == userBelow))
   {
      return findMessageEdge(min, middle - 1, key, direction, edge);
   }
   else if (key > userMid || (direction == 1 && key == userBelow))
   {
      return findMessageEdge(middle + 1, max, key, direction, edge);
   }
   else
   {
      return middle;
   }
}
开发者ID:dnordgren,项目名称:DataModelingProject1,代码行数:58,代码来源:process_record_h.c


示例8: send_user_message

/** Sends a user message to remote node via associated kernel connection. */
int send_user_message(int target_slot_type, int target_slot_index, int data_length, char* data) {
	struct nl_msg* msg = NULL;
	struct nl_msg *ans_msg = NULL;
	struct nlmsghdr *nl_hdr;
	struct genlmsghdr* genl_hdr;
	struct nlattr *nla;

	int ret_val = 0;

	if ( (ret_val=prepare_request_message(state.handle, DIRECTOR_SEND_GENERIC_USER_MESSAGE, state.gnl_fid, &msg) ) != 0 ) {
		goto done;
  	}

  	ret_val = nla_put_u32(msg,
			   DIRECTOR_A_SLOT_TYPE,
			   target_slot_type);
	if (ret_val != 0)
    		goto done;
    	
  	ret_val = nla_put_u32(msg,
			   DIRECTOR_A_SLOT_INDEX,
			   target_slot_index);
	if (ret_val != 0)
    		goto done;

  	ret_val = nla_put_u32(msg,
			   DIRECTOR_A_LENGTH,
			   data_length);
	if (ret_val != 0)
    		goto done;

	ret_val = nla_put(msg, DIRECTOR_A_USER_DATA, data_length, data);
	if (ret_val != 0)
    		goto done;

  	if ( (ret_val = send_request_message(state.handle, msg, 1) ) != 0 )
    		goto done;

	if ( (ret_val = read_message(state.handle, &ans_msg) ) != 0 ) {
	      goto done;
	}

	// TODO: We are not checking, the ack is for this request. Check it!
	while ( !is_ack_message(ans_msg) ) {
	    // We can get different than ack messega here.. in this case we have to process it
	    handle_incoming_message(ans_msg);
	    
	    if ( (ret_val = read_message(state.handle, &ans_msg) ) != 0 ) {
		  goto done;
	    }	  
	}

done:
	nlmsg_free(ans_msg);
	return ret_val;
}
开发者ID:novyzde3,项目名称:CVUTClondike,代码行数:57,代码来源:director-api.c


示例9: geoip_readdb

void geoip_readdb(void)
{
	struct stat bufa;
	FILE *db=fopen("./db/GeoIP.dat","rb");
	fstat(fileno(db), &bufa);
	geoip_cache = (unsigned char *) malloc(sizeof(unsigned char) * bufa.st_size);
	if(fread(geoip_cache, sizeof(unsigned char), bufa.st_size, db) != bufa.st_size) {
		ShowError(read_message("Source.char.inter_geoip_readdb_s1"));
	}
	fclose(db);
	ShowStatus(read_message("Source.char.inter_geoip_readdb_s2"), CL_GREEN, CL_RESET);
}
开发者ID:TidusBR,项目名称:brAthena-Old,代码行数:12,代码来源:inter.c


示例10: make_connection

int make_connection(uint32 ip, uint16 port, bool silent)
{
	struct sockaddr_in remote_address;
	int fd;
	int result;

	fd = sSocket(AF_INET, SOCK_STREAM, 0);

	if(fd == -1) {
		ShowError(read_message("Source.common.make_connection"), error_msg());
		return -1;
	}
	if(fd == 0) {
		// reserved
		ShowError(read_message("Source.common.make_connection2"));
		sClose(fd);
		return -1;
	}
	if(fd >= FD_SETSIZE) {
		// socket number too big
		ShowError("make_connection: New socket #%d is greater than can we handle! Increase the value of FD_SETSIZE (currently %d) for your OS to fix this!\n", fd, FD_SETSIZE);
		sClose(fd);
		return -1;
	}

	setsocketopts(fd);

	remote_address.sin_family      = AF_INET;
	remote_address.sin_addr.s_addr = htonl(ip);
	remote_address.sin_port        = htons(port);

	if(!silent)
		ShowStatus(read_message("Source.common.make_connect"), CONVIP(ip), port);

	result = sConnect(fd, (struct sockaddr *)(&remote_address), sizeof(struct sockaddr_in));
	if(result == SOCKET_ERROR) {
		if(!silent)
			ShowError(read_message("Source.common.make_sConnect"), fd, error_msg());
		do_close(fd);
		return -1;
	}
	//Now the socket can be made non-blocking. [Skotlex]
	set_nonblocking(fd, 1);

	if(fd_max <= fd) fd_max = fd + 1;
	sFD_SET(fd,&readfds);

	create_session(fd, recv_to_fifo, send_from_fifo, default_func_parse);
	session[fd]->client_addr = ntohl(remote_address.sin_addr.s_addr);

	return fd;
}
开发者ID:Chocolate31,项目名称:eamod,代码行数:52,代码来源:socket.c


示例11: make_listen_bind

int make_listen_bind(uint32 ip, uint16 port)
{
	struct sockaddr_in server_address;
	int fd;
	int result;

	fd = sSocket(AF_INET, SOCK_STREAM, 0);

	if(fd == -1) {
		ShowError(read_message("Source.common.make_listen_bind"), error_msg());
		exit(EXIT_FAILURE);
	}
	if(fd == 0) {
		// reserved
		ShowError(read_message("Source.common.make_listen_bind2"));
		sClose(fd);
		return -1;
	}
	if(fd >= FD_SETSIZE) {
		// socket number too big
		ShowError(read_message("Source.common.make_listen_bind3"), fd, FD_SETSIZE);
		sClose(fd);
		return -1;
	}

	setsocketopts(fd);
	set_nonblocking(fd, 1);

	server_address.sin_family      = AF_INET;
	server_address.sin_addr.s_addr = htonl(ip);
	server_address.sin_port        = htons(port);

	result = sBind(fd, (struct sockaddr *)&server_address, sizeof(server_address));
	if(result == SOCKET_ERROR) {
		ShowError(read_message("Source.common.make_listen_bind4"), fd, error_msg());
		exit(EXIT_FAILURE);
	}
	result = sListen(fd,5);
	if(result == SOCKET_ERROR) {
		ShowError(read_message("Source.common.make_listen_bind5"), fd, error_msg());
		exit(EXIT_FAILURE);
	}

	if(fd_max <= fd) fd_max = fd + 1;
	sFD_SET(fd, &readfds);

	create_session(fd, connect_client, null_send, null_parse);
	session[fd]->client_addr = 0; // just listens
	session[fd]->rdata_tick = 0; // disable timeouts on this socket

	return fd;
}
开发者ID:Chocolate31,项目名称:eamod,代码行数:52,代码来源:socket.c


示例12: network_do

void network_do()
{
	struct EVDP_EVENT l_events[EVENTS_PER_CYCLE];
	register struct EVDP_EVENT *ev;
	register int n, nfds;
	register SESSION *s;

	nfds = evdp_wait(l_events,  EVENTS_PER_CYCLE, 1000);  // @TODO: timer_getnext()

	for(n = 0; n < nfds; n++) {
		ev = &l_events[n];
		s = &g_Session[ ev->fd ];

		if(ev->events & EVDP_EVENT_HUP) {
			network_disconnect(ev->fd);
			continue; // no further event processing.
		}// endif vent is HUP (disconnect)


		if(ev->events & EVDP_EVENT_IN) {

			if(s->onRecv != NULL) {
				if(false == s->onRecv(ev->fd)) {
					network_disconnect(ev->fd);
					continue; // ..
				}
			} else {
				ShowError(read_message("Source.common.network_do"), ev->fd);
				network_disconnect(ev->fd);
				continue;
			}

		}// endif event is IN (recv)


		if(ev->events & EVDP_EVENT_OUT) {
			if(s->onSend != NULL) {
				if(false == s->onSend(ev->fd)) {
					network_disconnect(ev->fd);
					continue;
				}
			} else {
				ShowError(read_message("Source.common.network_do2"), ev->fd);
				network_disconnect(ev->fd);
				continue;
			}
		}// endif event is OUT (send)

	}//endfor

}//end: network_do()
开发者ID:Mateuus,项目名称:brathena-1,代码行数:51,代码来源:network.c


示例13: gear_up

static void gear_up(void) {
	printf("SHIFT UP\n");
	IGNITION_CUT();
	gear(UP);

	uint32_t timer = get_tick() + 500;

	while(1) {
		if (get_tick() > timer) {
			gear(STOP);
			IGNITION_UNCUT();
			gear(DOWN);
			_delay_ms(100);
			gear(STOP);
			printf("DIDN'T REACH END\n");
			return;
		}

		if (can_has_data()) {
			struct can_message message;
			read_message(&message);
			if ((message.id == GEAR_STOP_BUTTON) && (message.data[0] == 2)) {
				gear(STOP);
				IGNITION_UNCUT();
				_delay_ms(50);
				gear(DOWN);

				uint32_t timer2 = get_tick() + 200;
				while(1) {
					if (get_tick() > timer2) {
						gear(STOP);
						printf("FAILED TO RELEASE AFTER SHIFT\n");
						return;
					}

					if (can_has_data()) {
						struct can_message message;
						read_message(&message);
						if ((message.id == GEAR_STOP_BUTTON) && (message.data[0] == 0)) {
							_delay_ms(100);
							gear(STOP);
							printf("PERFECT GEARSHIFT\n");
							return;
						}
					}
				}
			}
		}
	}
}
开发者ID:UnicornRaceEngineering,项目名称:g5-nodes,代码行数:50,代码来源:main.c


示例14: read_debug_message

static char read_debug_message(BANG_peer *self) {
    unsigned int *length = (unsigned int*) read_message(self,LENGTH_OF_LENGTHS);
    if (length == NULL) {
        return 0;
    }
    char *message = (char*) read_message(self,*length);
    if (message == NULL) {
        return 0;
    }
    fprintf(stderr,"%s",message);
    free(message);
    return 1;

}
开发者ID:nikron,项目名称:bang-2009-eoh-project,代码行数:14,代码来源:bang-read-thread.c


示例15: read_file

uint8_t read_file(uint32_t file_number)  //read the file and returns the pointer to file
{
	message m;
	uint8_t i;	
	
	if(CHECK_FILE_FLAG(file_number))	//
	{	
		for(i=0;i<messages_per_file;i++)
		{
			if(read_message(file_number,i));	
			{
				m=*ptr;
				tempf.sms[i]=m;	//storing the message
			}
			sd_delay(15);
		}		
	tempf.flag=0x11; //file exists
	ptrf=&tempf;
	return 0x00; // read file correctly
	}
	else
	{
		return 0x11;// file doesnot exists
	}	
}
开发者ID:chaiide,项目名称:A-Rudimentary-RTOS-for-Satellite-Control,代码行数:25,代码来源:sat_fs.c


示例16: load_or_save_variables_at_path

/**
   Load or save all variables
*/
static bool load_or_save_variables_at_path(bool save, const std::string &path)
{
    bool result = false;

    debug(4, L"Open file for %s: '%s'",
          save?"saving":"loading",
          path.c_str());

    /* OK to not use CLO_EXEC here because fishd is single threaded */
    int fd = open(path.c_str(), save?(O_CREAT | O_TRUNC | O_WRONLY):O_RDONLY, 0600);
    if (fd >= 0)
    {
        /* Success */
        result = true;
        connection_t c(fd);

        if (save)
        {
            /* Save to the file */
            write_loop(c.fd, SAVE_MSG, strlen(SAVE_MSG));
            enqueue_all(&c);
        }
        else
        {
            /* Read from the file */
            read_message(&c);
        }

        connection_destroy(&c);
    }
    return result;
}
开发者ID:jay2013,项目名称:fish-shell,代码行数:35,代码来源:fishd.cpp


示例17: register_pid

/** Registeres pid as a user-space director into the kernel */
static int register_pid(pid_t pid) {
	struct nl_msg* msg = NULL;
	struct nl_msg *ans_msg = NULL;
	struct nlmsghdr *nl_hdr;
	struct genlmsghdr* genl_hdr;
	struct nlattr *nla;

	int ret_val = 0;

	printf("Registering pid\n");	

	if ( (ret_val=prepare_request_message(state.handle, DIRECTOR_REGISTER_PID, state.gnl_fid, &msg) ) != 0 ) {
		goto done;
  	}
    	
  	ret_val = nla_put_u32(msg,
			   DIRECTOR_A_PID,
			   pid);
  	
	if (ret_val != 0)
    		goto done;

  	if ( (ret_val = send_request_message(state.handle, msg, 1) ) != 0 )
    		goto done;

	  if ( (ret_val = read_message(state.handle, &ans_msg) ) != 0 )
    		goto done;

done:
	nlmsg_free(ans_msg);
	return ret_val;
}
开发者ID:novyzde3,项目名称:CVUTClondike,代码行数:33,代码来源:director-api.c


示例18: opal_show_help

int opal_show_help(const char *filename, const char *topic, 
                   bool want_error_header, ...)
{
    int ret;
    va_list arglist;
    char **array = NULL;

    if (OPAL_SUCCESS != (ret = open_file(filename, topic))) {
        return ret;
    }
    if (OPAL_SUCCESS != (ret = find_topic(filename, topic))) {
        fclose(opal_show_help_yyin);
        return ret;
    }

    ret = read_message(&array);
    opal_show_help_finish_parsing();
    fclose(opal_show_help_yyin);
    if (OPAL_SUCCESS != ret) {
        destroy_message(array);
        return ret;
    }

    va_start(arglist, want_error_header);
    output(want_error_header, array, filename, topic, arglist);
    va_end(arglist);

    destroy_message(array);
    return ret;
}
开发者ID:aosm,项目名称:openmpi,代码行数:30,代码来源:show_help.c


示例19: aggregate_message

/**
 * Add msg to the bunch of aggregated messages.
 */
static int aggregate_message(FILE *fp, struct message ***del_msg,
			     int *num_del_msg, struct file_header *f_hdr)
{
	struct message tmp_msg;
	long cur_pos = ftell(fp);
	struct message **tmp = *del_msg;
	int i;

	/* read message and rewind */
	if (read_message(fp, &tmp_msg, f_hdr->version, f_hdr->msgid_blkiomon))
		return -1;
	fseek(fp, cur_pos, SEEK_SET);

	/* append the message that we read to the array */
	if (tmp_msg.type != ZIOMON_DACC_GARBAGE_MSG) {
		*del_msg = malloc((*num_del_msg + 1)*sizeof(struct message*));
		for (i = 0; i < *num_del_msg; ++i)
			(*del_msg)[i] = tmp[i];
		if (*num_del_msg > 0)
			free(tmp);
		// add new msg at end
		(*del_msg)[*num_del_msg] = malloc(sizeof(struct message));
		*(*del_msg)[*num_del_msg] = tmp_msg;
		(*num_del_msg)++;
	}

	return 0;
}
开发者ID:transformersprimeabcxyz,项目名称:s390-tools-qemu,代码行数:31,代码来源:ziomon_dacc.c


示例20: mapif_parse_SaveGuildStorage

int mapif_parse_SaveGuildStorage(int fd)
{
	int guild_id;
	int len;

	RFIFOHEAD(fd);
	guild_id = RFIFOL(fd,8);
	len = RFIFOW(fd,2);

	if(sizeof(struct guild_storage) != len - 12) {
		ShowError(read_message("Source.char.storage_saveguildstorage"), sizeof(struct guild_storage), len - 12);
	} else {
		if(SQL_ERROR == Sql_Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id))
			Sql_ShowDebug(sql_handle);
		else if(Sql_NumRows(sql_handle) > 0) {
			// guild exists
			Sql_FreeResult(sql_handle);
			guild_storage_tosql(guild_id, (struct guild_storage *)RFIFOP(fd,12));
			mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
			return 0;
		}
		Sql_FreeResult(sql_handle);
	}
	mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
	return 0;
}
开发者ID:Chocolate31,项目名称:eamod,代码行数:26,代码来源:int_storage.c



注:本文中的read_message函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ read_mpidr函数代码示例发布时间:2022-05-30
下一篇:
C++ read_memory_unsigned_integer函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap