1 /*****************************************************************************/ 2 /* Obj.h - A library for object list. */ 3 /* */ 4 /* Obj.h Copyright (c) 2000 Sakai Hiroaki. */ 5 /* All Rights Reserved. */ 6 /*****************************************************************************/ 7 8 #ifndef _SAKAILIB_OBJ_H_INCLUDED_ 9 #define _SAKAILIB_OBJ_H_INCLUDED_ 10 11 typedef void * Obj; 12 typedef struct _ObjListData * ObjListData; 13 typedef struct _ObjList * ObjList; 14 typedef Obj (*ObjDestructor)(Obj); 15 16 #include <stdio.h> 17 #include <stdlib.h> 18 19 /*****************************************************************************/ 20 /* ObjList �����֥������Ȥ���� */ 21 /*****************************************************************************/ 22 23 Obj ObjListData_GetObj(ObjListData data); 24 Obj ObjListData_GetPrev(ObjListData data); 25 Obj ObjListData_GetNext(ObjListData data); 26 int ObjList_GetLength(ObjList list); 27 ObjListData ObjList_GetStartEdge(ObjList list); 28 ObjListData ObjList_GetEndEdge(ObjList list); 29 ObjListData ObjList_GetStart(ObjList list); 30 ObjListData ObjList_GetEnd(ObjList list); 31 int ObjList_IsEmpty(ObjList list); 32 int ObjList_IsStartEdge(ObjList list, ObjListData data); 33 int ObjList_IsEndEdge(ObjList list, ObjListData data); 34 int ObjList_IsStart(ObjList list, ObjListData data); 35 int ObjList_IsEnd(ObjList list, ObjListData data); 36 ObjListData ObjList_InsertObjToPrev(ObjList list, ObjListData current, 37 Obj obj, Obj (*destructor)()); 38 ObjListData ObjList_InsertObjToNext(ObjList list, ObjListData current, 39 Obj obj, Obj (*destructor)()); 40 ObjListData ObjList_InsertObjToStart(ObjList list, Obj obj, 41 Obj (*destructor)()); 42 ObjListData ObjList_InsertObjToEnd(ObjList list, Obj obj, 43 Obj (*destructor)()); 44 ObjListData ObjList_DeleteObjToPrev(ObjList list, ObjListData current); 45 ObjListData ObjList_DeleteObjToNext(ObjList list, ObjListData current); 46 ObjListData ObjList_DeleteObjFromStart(ObjList list); 47 ObjListData ObjList_DeleteObjFromEnd(ObjList list); 48 ObjListData ObjList_MoveObjToPrev(ObjList list, 49 ObjListData current, 50 ObjListData to); 51 ObjListData ObjList_MoveObjToNext(ObjList list, 52 ObjListData current, 53 ObjListData to); 54 ObjListData ObjList_MoveObjToStart(ObjList list, ObjListData current); 55 ObjListData ObjList_MoveObjToEnd(ObjList list, ObjListData current); 56 ObjList ObjList_Create(); /* ObjList �����֥������Ȥ�������� */ 57 ObjList ObjList_Destroy(ObjList list); /* */ 58 59 /*===========================================================================*/ 60 /* ʣ���Υꥹ�ȴ֤Ǥ���� */ 61 /*===========================================================================*/ 62 63 ObjListData ObjList_MoveObjToPrevOfOtherList(ObjList list, ObjListData current, 64 ObjList to_list, ObjListData to); 65 ObjListData ObjList_MoveObjToNextOfOtherList(ObjList list, ObjListData current, 66 ObjList to_list, ObjListData to); 67 ObjListData ObjList_MoveObjToStartOfOtherList(ObjList list, 68 ObjListData current, 69 ObjList to_list); 70 ObjListData ObjList_MoveObjToEndOfOtherList(ObjList list, 71 ObjListData current, 72 ObjList to_list); 73 ObjList ObjList_Concatenate(ObjList list1, ObjList list2); 74 75 #endif 76 77