本文整理汇总了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;未经允许,请勿转载。 |
请发表评论