📄 test-iterator.c
字号:
/* librecord2 - Record Object manipulation and storage library 2 * * Authors: YE Nan <nan.ye@orange-ftgroup.com> * * This software and associated documentation files (the "Software") * are copyright (C) 2005 LiPS Linux Phone Standards Forum [FranceTelecom] * All Rights Reserved. * * A copyright license is hereby granted for redistribution and use of * the Software in source and binary forms, with or without modification, * provided that the following conditions are met: * - Redistributions of source code must retain the above copyright notice, * this copyright license and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this copyright license and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of LiPS nor the names of its Members may be used * to endorse or promote products derived from the Software without * specific prior written permission. * * A patent license for any Necessary Claims owned by Members of LiPS Forum * to make, have made, use, import, offer to sell, lease and sell or otherwise * distribute any implementation compliant with the any specification adopted * by the LiPS Forumcan be obtained from the respective Members on reasonable * and non-discriminatory terms and conditions and under reciprocity, as * regulated in more detail in the Internal Policy of the LiPS Forum. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER, ITS MEMBERS AND CONTRIBUTORS * "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * AND NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER, * ITS MEMBERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */#include <stdio.h>#include <stdlib.h>#include <glib.h>#include <field.h>#include <iterator.h>#define FIELD_COUNT 10int main (int argc, char *argv[]){ FieldDescriptor * fdesc = NULL; Iterator * iter = NULL; gpointer * fields = NULL; int i; fdesc = field_descriptor_new(0, FIELD_TYPE_INTEGER, FIELD_ATTR_NONE, sizeof(gint)); iter = iterator_new_full((IterFreeFunc)field_free); for (i = 0; i < FIELD_COUNT; i++) { Field * field = NULL; gchar * label = NULL; gchar * desc = NULL; gint value = 0; label = g_strdup_printf("label%03d", i); desc = g_strdup_printf("desc%03d", i); value = i * 100; field = field_new_full(fdesc, i, label, desc, (gpointer)&value, sizeof(gint)); g_free(label); g_free(desc); iterator_insert(iter, field); } for (iterator_to_first(iter); !iterator_at_last(iter); iterator_next(iter)) { Field * field = (Field *)iterator_current(iter);// field_print(field); } fields = iterator_free(iter, FALSE); for (i = 0; fields[i] != NULL; i++) { Field * field = (Field *)fields[i]; g_print("%s(): field = 0x%08x\n", __FUNCTION__, (guint32)field); field_print(field); field_free(field); } g_free(fields); field_descriptor_free(fdesc); return EXIT_SUCCESS;}/*vi:ts=2:nowrap:ai:expandtab */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -