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

C++ carray_count函数代码示例

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

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



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

示例1: mail_thread_sort

int mail_thread_sort(struct mailmessage_tree * tree,
    int (* comp_func)(struct mailmessage_tree **,
        struct mailmessage_tree **),
    int sort_sub)
{
  unsigned int cur;
  int r;
  int res;

  for(cur = 0 ; cur < carray_count(tree->node_children) ; cur ++) {
    struct mailmessage_tree * subtree;

    subtree = carray_get(tree->node_children, cur);

    if (sort_sub) {
      r = mail_thread_sort(subtree, comp_func, sort_sub);
      if (r != MAIL_NO_ERROR) {
	res = r;
	goto err;
      }
    }
  }

  qsort(carray_data(tree->node_children), carray_count(tree->node_children),
      sizeof(struct mailmessage_tree *),
	(int (*)(const void *, const void *)) comp_func);

  return MAIL_NO_ERROR;
  
 err:
  return res;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:32,代码来源:mailthread.c


示例2: mailmh_folder_free

void mailmh_folder_free(struct mailmh_folder * folder)
{
  unsigned int i;

  for(i = 0 ; i < carray_count(folder->fl_subfolders_tab) ; i++) {
    struct mailmh_folder * subfolder;

    subfolder = carray_get(folder->fl_subfolders_tab, i);
    if (subfolder != NULL)
      mailmh_folder_free(subfolder);
  }
  carray_free(folder->fl_subfolders_tab);
  chash_free(folder->fl_subfolders_hash);

  for(i = 0 ; i < carray_count(folder->fl_msgs_tab) ; i++) {
    struct mailmh_msg_info * msg_info;

    msg_info = carray_get(folder->fl_msgs_tab, i);
    if (msg_info != NULL)
      mailmh_msg_info_free(msg_info);
  }
  carray_free(folder->fl_msgs_tab);
  chash_free(folder->fl_msgs_hash);
  
  free(folder->fl_filename);
  free(folder->fl_name);

  free(folder);
}
开发者ID:Applexis,项目名称:libetpan,代码行数:29,代码来源:mailmh.c


示例3: display_sub_tree

static void
display_sub_tree(MMAPString * prefix,
    struct mailmessage_tree * msg_tree,
    int level, int has_next, unsigned int * pcount)
{
  carray * list;
  uint32_t cur;
  
  if (msg_tree->node_msg != NULL) {
    print_mail_info(prefix->str, msg_tree->node_msg);
    (* pcount) ++;
  }

  list = msg_tree->node_children;
  
  if (carray_count(list) != 0) {
    char old_prefix[2];
	    
    if (level > 1) {
      memcpy(old_prefix, prefix->str + prefix->len - 2, 2);
      if (has_next)
        memcpy(prefix->str + prefix->len - 2, "| ", 2);
      else
        memcpy(prefix->str + prefix->len - 2, "  ", 2);
    }
    for(cur = 0 ; cur < carray_count(list) ; cur ++) {
      int sub_has_next;
      
      if (cur != carray_count(list) - 1) {
	if (level > 0) {
	  if (mmap_string_append(prefix, "+-") == NULL)
            return;
        }
	sub_has_next = 1;
      }
      else {
	if (level > 0) {
	  if (mmap_string_append(prefix, "\\-") == NULL)
            return;
        }
	sub_has_next = 0;
      }

      display_sub_tree(prefix, carray_get(list, cur),
          level + 1, sub_has_next, pcount);

      if (mmap_string_truncate(prefix, prefix->len - 2) == NULL) {
        return;
      }
    }
    if (level > 1) {
      memcpy(prefix->str + prefix->len - 2, old_prefix, 2);
    }
  }
}
开发者ID:AlexKar,项目名称:libetpan,代码行数:55,代码来源:frm-tree.c


示例4: flags_store_process

static int flags_store_process(mailsession * session)
{
  unsigned int i;
  MMAPString * mmapstr;
  int r;
  int res;
  struct mail_cache_db * maildb;
  struct db_session_state_data * data;
  struct mail_flags_store * flags_store;
  
  data = get_data(session);
  
  flags_store = data->db_flags_store;
  
  if (carray_count(flags_store->fls_tab) == 0)
    return MAIL_NO_ERROR;
  
  mmapstr = mmap_string_new("");
  if (mmapstr == NULL) {
    res = MAIL_ERROR_MEMORY;
    goto err;
  }
  
  r = mail_cache_db_open_lock(data->db_filename, &maildb);
  if (r < 0) {
    res = MAIL_ERROR_FILE;
    goto free_mmapstr;
  }
  
  for(i = 0 ; i < carray_count(flags_store->fls_tab) ; i ++) {
    mailmessage * msg;
    char key[PATH_MAX];
    
    msg = carray_get(flags_store->fls_tab, i);
    
    snprintf(key, sizeof(key), "%lu-flags", (unsigned long) msg->msg_index);
    
    r = generic_cache_flags_write(maildb, mmapstr,
        key, msg->msg_flags);
  }
  
  mail_flags_store_clear(flags_store);
  
  mail_cache_db_close_unlock(data->db_filename, maildb);
  mmap_string_free(mmapstr);
  
  return MAIL_NO_ERROR;
  
 free_mmapstr:
  mmap_string_free(mmapstr);
 err:
  return res;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:53,代码来源:dbdriver.c


示例5: mh_flags_store_process

static int mh_flags_store_process(char * flags_directory, char * quoted_mb,
				  struct mail_flags_store * flags_store)
{
  char filename_flags[PATH_MAX];
  struct mail_cache_db * cache_db_flags;
  MMAPString * mmapstr;
  unsigned int i;
  int r;
  int res;

  if (carray_count(flags_store->fls_tab) == 0)
    return MAIL_NO_ERROR;

  if (quoted_mb == NULL)
    return MAIL_NO_ERROR;

  snprintf(filename_flags, PATH_MAX, "%s/%s/%s",
	   flags_directory, quoted_mb, FLAGS_NAME);

  r = mail_cache_db_open_lock(filename_flags, &cache_db_flags);
  if (r < 0) {
    res = MAIL_ERROR_FILE;
    goto err;
  }

  mmapstr = mmap_string_new("");
  if (mmapstr == NULL) {
    res = MAIL_ERROR_MEMORY;
    goto close_db_flags;
  }
  
  for(i = 0 ; i < carray_count(flags_store->fls_tab) ; i ++) {
    mailmessage * msg;

    msg = carray_get(flags_store->fls_tab, i);

    r = mhdriver_write_cached_flags(cache_db_flags, mmapstr,
        msg->msg_uid, msg->msg_flags);
  }

  mmap_string_free(mmapstr);
  mail_cache_db_close_unlock(filename_flags, cache_db_flags);

  mail_flags_store_clear(flags_store);

  return MAIL_NO_ERROR;

 close_db_flags:
  mail_cache_db_close_unlock(filename_flags, cache_db_flags);
 err:
  return res;
}
开发者ID:Applexis,项目名称:libetpan,代码行数:52,代码来源:mhdriver_cached.c


示例6: privacy_handler

static int privacy_handler(struct mailprivacy * privacy,
    mailmessage * msg,
    struct mailmime * mime, struct mailmime ** result)
{
  int r;
  struct mailmime * alternative_mime;
  unsigned int i;
  
  alternative_mime = NULL;
  for(i = 0 ; i < carray_count(privacy->protocols) ; i ++) {
    struct mailprivacy_protocol * protocol;
    
    protocol = carray_get(privacy->protocols, i);
    
    if (protocol->decrypt != NULL) {
      r = protocol->decrypt(privacy, msg, mime, &alternative_mime);
      if (r == MAIL_NO_ERROR) {
        
        * result = alternative_mime;
        
        return MAIL_NO_ERROR;
      }
    }
  }
  
  return MAIL_ERROR_INVAL;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:27,代码来源:mailprivacy.c


示例7: mailfolder_detach_parent

LIBETPAN_EXPORT
int mailfolder_detach_parent(struct mailfolder * folder)
{
  unsigned int i;
  int r;
  
  if (folder->fld_parent == NULL)
    return MAIL_ERROR_INVAL;

  r = carray_delete_slow(folder->fld_parent->fld_children,
      folder->fld_sibling_index);
  if (r < 0)
    return MAIL_ERROR_INVAL;
  
  for(i = 0 ; i < carray_count(folder->fld_parent->fld_children) ; i ++) {
    struct mailfolder * child;
    
    child = carray_get(folder->fld_parent->fld_children, i);
    child->fld_sibling_index = i;
  }

  folder->fld_parent = NULL;
  folder->fld_sibling_index = 0;

  return MAIL_NO_ERROR;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:26,代码来源:mailstorage.c


示例8: get_list_folders

static int get_list_folders(struct mailmh_folder * folder, clist ** result)
{
  unsigned int i;
  clist * list;
  char * new_filename;
  int res;
  int r;

  list = * result;

  new_filename = strdup(folder->fl_filename);
  if (new_filename == NULL) {
    res = MAIL_ERROR_MEMORY;
    goto free;
  }

  r = mailmh_folder_update(folder);

  switch (r) {
  case MAILMH_NO_ERROR:
    break;

  default:
    res = mhdriver_mh_error_to_mail_error(r);
    free(new_filename);
    goto free;
  }

  r = clist_append(list, new_filename);
  if (r < 0) {
    free(new_filename);
    res = MAIL_ERROR_MEMORY;
    goto free;
  }
  
  if (folder->fl_subfolders_tab != NULL) {
    for(i = 0 ; i < carray_count(folder->fl_subfolders_tab) ; i++) {
      struct mailmh_folder * subfolder;

      subfolder = carray_get(folder->fl_subfolders_tab, i);

      r = get_list_folders(subfolder, &list);
      if (r != MAIL_NO_ERROR) {
		    free(new_filename);
	res = MAIL_ERROR_MEMORY;
	goto free;
      }
    }
  }

  * result = list;
  
  free(new_filename);
  return MAIL_NO_ERROR;

 free:
  clist_foreach(list, (clist_func) free, NULL);
  clist_free(list);
  return res;
}
开发者ID:AlexKar,项目名称:libetpan,代码行数:60,代码来源:mhdriver.c


示例9: maildriver_generic_get_envelopes_list

int
maildriver_generic_get_envelopes_list(mailsession * session,
    struct mailmessage_list * env_list)
{
  int r;
  unsigned i;

  for(i = 0 ; i < carray_count(env_list->msg_tab) ; i ++) {
    mailmessage * msg;
    
    msg = carray_get(env_list->msg_tab, i);
    
    if (msg->msg_fields == NULL) {
      struct mailimf_fields * fields;

      r = mailmessage_fetch_envelope(msg, &fields);
      if (r != MAIL_NO_ERROR) {
	/* do nothing */
      }
      else {
	msg->msg_fields = fields;
      }
      mailmessage_flush(msg);
    }
  }

  return MAIL_NO_ERROR;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:28,代码来源:maildriver_tools.c


示例10: expunge_folder

static int expunge_folder(mailsession * session)
{
  unsigned int i;
  int r;
  int res;
  struct maildir * md;

  check_folder(session);

  md = get_maildir_session(session);
  if (md == NULL)
    return MAIL_ERROR_BAD_STATE;

  r = maildir_update(md);
  if (r != MAILDIR_NO_ERROR) {
    res = maildirdriver_maildir_error_to_mail_error(r);
    goto err;
  }

  for(i = 0 ; i < carray_count(md->mdir_msg_list) ; i++) {
    struct maildir_msg * md_msg;

    md_msg = carray_get(md->mdir_msg_list, i);

    if ((md_msg->msg_flags & MAILDIR_FLAG_TRASHED) != 0)
      maildir_message_remove(md, md_msg->msg_uid);
  }

  return MAIL_NO_ERROR;

 err:
  return res;
}
开发者ID:lysannschlegel,项目名称:libetpan,代码行数:33,代码来源:maildirdriver.c


示例11: feeddriver_get_messages_list

static int feeddriver_get_messages_list(mailsession * session,
    struct mailmessage_list ** result)
{
  unsigned int i;
  struct feed_session_state_data * data;
  unsigned int count;
  struct mailmessage_list * msg_list;
  carray * tab;
  int res;
  int r;
  
  update(session);
  data = get_data(session);
  if (data->feed_error != MAIL_NO_ERROR) {
    res = data->feed_error;
    goto err;
  }
  
  count = newsfeed_item_list_get_count(data->feed_session);
  
  tab = carray_new(count);
  if (tab == NULL) {
    res = MAIL_ERROR_MEMORY;
    goto err;
  }
  fprintf(stderr, "count: %i\n", count);
  
  for(i = 0 ; i < count ; i ++) {
    struct newsfeed_item * item;
    mailmessage * msg;
    
    item = newsfeed_get_item(data->feed_session, i);
    msg = feed_item_to_message(session, i, item);
    r = carray_add(tab, msg, NULL);
    if (r < 0) {
      res = MAIL_ERROR_MEMORY;
      goto free_tab;
    }
  }
  
  msg_list = mailmessage_list_new(tab);
  if (msg_list == NULL) {
    res = MAIL_ERROR_MEMORY;
    goto free_tab;
  }
  
  * result = msg_list;
  
  return MAIL_NO_ERROR;
  
 free_tab:
  for(i = 0 ; i < carray_count(tab) ; i ++) {
    mailmessage * msg;
    
    msg = carray_get(tab, i);
    mailmessage_free(msg);
  }
 err:
  return res;
}
开发者ID:AlexandrPonomarev,项目名称:Gmail,代码行数:60,代码来源:feeddriver.c


示例12: mail_build_thread

int mail_build_thread(int type, char * default_from,
    struct mailmessage_list * env_list,
    struct mailmessage_tree ** result,
     int (* comp_func)(struct mailmessage_tree **,
         struct mailmessage_tree **))
{
  unsigned int i;

  for(i = 0 ; i < carray_count(env_list->msg_tab) ; i ++)
    mailmessage_resolve_single_fields(carray_get(env_list->msg_tab, i));

  switch (type) {
  case MAIL_THREAD_REFERENCES:
    return mail_build_thread_references(default_from,
        env_list, result, TRUE, comp_func);

  case MAIL_THREAD_REFERENCES_NO_SUBJECT:
    return mail_build_thread_references(default_from,
        env_list, result, FALSE, comp_func);

  case MAIL_THREAD_ORDEREDSUBJECT:
    return mail_build_thread_orderedsubject(default_from,
        env_list, result, comp_func);
    
  case MAIL_THREAD_NONE:
    return mail_build_thread_none(default_from,
        env_list, result, comp_func);
    
  default:
    return MAIL_ERROR_NOT_IMPLEMENTED;
  }
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:32,代码来源:mailthread.c


示例13: get_envelopes_list

static int get_envelopes_list(mailsession * session,
    struct mailmessage_list * env_list)
{
  unsigned int i;
  char key[PATH_MAX];
  int r;
  struct mail_cache_db * maildb;
  int res;
  struct db_session_state_data * data;
  MMAPString * mmapstr;
  
  data = get_data(session);
  
  flags_store_process(session);
  
  r = mail_cache_db_open_lock(data->db_filename, &maildb);
  if (r < 0) {
    res = MAIL_ERROR_FILE;
    goto err;
  }
  
  mmapstr = mmap_string_new("");
  if (mmapstr == NULL) {
    res = MAIL_ERROR_MEMORY;
    goto close_db;
  }
  
  for(i = 0 ; i < carray_count(env_list->msg_tab) ; i ++) {
    mailmessage * msg;
    
    msg = carray_get(env_list->msg_tab, i);
    if (msg->msg_fields == NULL) {
      snprintf(key, sizeof(key), "%lu-envelope",
          (unsigned long) msg->msg_index);
      
      r = generic_cache_fields_read(maildb, mmapstr,
        key, &msg->msg_fields);
    }
    
    if (msg->msg_flags == NULL) {
      snprintf(key, sizeof(key), "%lu-flags",
          (unsigned long) msg->msg_index);
      
      r = generic_cache_flags_read(maildb, mmapstr,
          key, &msg->msg_flags);
    }
  }
  
  mmap_string_free(mmapstr);
  
  mail_cache_db_close_unlock(data->db_filename, maildb);
  
  return MAIL_NO_ERROR;
  
 close_db:
  mail_cache_db_close_unlock(data->db_filename, maildb);
 err:
  return res;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:59,代码来源:dbdriver.c


示例14: is_descendant

static inline int is_descendant(struct mailmessage_tree * node,
			 struct mailmessage_tree * maybe_child)
{
  unsigned int i;

  for(i = 0 ; i < carray_count(node->node_children) ; i++) {
    struct mailmessage_tree * tree;

    tree = carray_get(node->node_children, i);
    if (tree == maybe_child)
      return TRUE;
    if (carray_count(tree->node_children) != 0)
      if (is_descendant(tree, maybe_child))
	return TRUE;
  }

  return FALSE;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:18,代码来源:mailthread.c


示例15: mailpop3_msg_info_tab_reset

static void mailpop3_msg_info_tab_reset(carray * msg_tab)
{
  unsigned int i;

  for(i = 0 ; i < carray_count(msg_tab) ; i++) {
    struct mailpop3_msg_info * msg;
    msg = carray_get(msg_tab, i);
    msg->msg_deleted = FALSE;
  }
}
开发者ID:CodaFi,项目名称:etPanKit,代码行数:10,代码来源:mailpop3.c


示例16: mailmh_folder_get_message_number

unsigned int mailmh_folder_get_message_number(struct mailmh_folder * folder)
{
  unsigned int i;
  unsigned int count;
  
  count = 0;
  for(i = 0 ; i < carray_count(folder->fl_msgs_tab) ; i ++)
    if (carray_get(folder->fl_msgs_tab, i) != NULL)
      count ++;
  
  return count;
}
开发者ID:Applexis,项目名称:libetpan,代码行数:12,代码来源:mailmh.c


示例17: mailpop3_msg_info_tab_free

static void mailpop3_msg_info_tab_free(carray * msg_tab)
{
  unsigned int i;

  for(i = 0 ; i < carray_count(msg_tab) ; i++) {
    struct mailpop3_msg_info * msg;
    
    msg = carray_get(msg_tab, i);
    mailpop3_msg_info_free(msg);
  }
  carray_free(msg_tab);
}
开发者ID:CodaFi,项目名称:etPanKit,代码行数:12,代码来源:mailpop3.c


示例18: tcp_receiver_free

void tcp_receiver_free(struct tcp_receiver* r)
{
	int i;
	/*释放监视的事件*/
	for (i = 0; i < carray_count(r->bevs); ++i)
		bufferevent_free(carray_at(r->bevs, i));
	/*释放监听*/
	evconnlistener_free(r->listener);

	carray_free(r->bevs);
	free(r);
}
开发者ID:ahnufy,项目名称:libpaxos,代码行数:12,代码来源:tcp_receiver.c


示例19: mailprivacy_unregister

void mailprivacy_unregister(struct mailprivacy * privacy,
    struct mailprivacy_protocol * protocol)
{
  unsigned int i;
  
  for(i = 0 ; i < carray_count(privacy->protocols) ; i ++) {
    if (carray_get(privacy->protocols, i) == protocol) {
      carray_delete(privacy->protocols, i);
      return;
    }
  }
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:12,代码来源:mailprivacy.c


示例20: mailstream_certificate_chain_free

void mailstream_certificate_chain_free(carray * certificate_chain)
{
  unsigned int i;
  
  if (certificate_chain == NULL)
    return;
  
  for(i = 0 ; i < carray_count(certificate_chain) ; i ++) {
    mmap_string_free(carray_get(certificate_chain, i));
  }
  carray_free(certificate_chain);
}
开发者ID:AlexandrPonomarev,项目名称:Gmail,代码行数:12,代码来源:mailstream.c



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C++ carry_object函数代码示例发布时间:2022-05-30
下一篇:
C++ carmen_test_alloc函数代码示例发布时间: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