Grid Community Toolkit  6.2.1705709074 (tag: v6.2.20240202)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
globus_fifo.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef GLOBUS_FIFO_H
18 #define GLOBUS_FIFO_H
19 
33 #include "globus_list.h"
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
43 struct globus_fifo_s;
48 typedef struct globus_fifo_s * globus_fifo_t;
49 
57 extern int
59  globus_fifo_t * fifo);
60 
69 extern void
71  globus_fifo_t * fifo);
72 
82 void
84  globus_fifo_t * fifo,
85  void (*datum_free)(void *));
86 
92 extern int
94  const globus_fifo_t * fifo);
95 
101 extern int
103  const globus_fifo_t * fifo);
104 
109 extern int
111  globus_fifo_t * fifo,
112  void * datum);
113 
119 extern globus_fifo_t *
121  const globus_fifo_t * fifo);
122 
127 extern void *
129  globus_fifo_t * fifo);
130 
135 extern void *
137  globus_fifo_t * fifo);
138 
143 extern void *
145  globus_fifo_t * headp,
146  void * datum);
147 
152 extern void *
154  globus_fifo_t * fifo);
155 
160 extern int
162  globus_fifo_t * fifo_dest,
163  globus_fifo_t * fifo_src);
164 
169 extern globus_list_t *
171  globus_fifo_t * fifo );
172 
173 #ifdef __cplusplus
174 }
175 #endif
176 
177 #endif /* GLOBUS_FIFO_H */
int globus_fifo_size(const globus_fifo_t *fifo)
Definition: globus_fifo.c:108
void * globus_fifo_tail_peek(globus_fifo_t *fifo)
Definition: globus_fifo.c:202
void * globus_fifo_peek(globus_fifo_t *fifo)
Definition: globus_fifo.c:188
Linked List.
struct globus_fifo_s * globus_fifo_t
Definition: globus_fifo.h:48
List data type.
Definition: globus_list.h:44
void * globus_fifo_remove(globus_fifo_t *fifo, void *datum)
Definition: globus_fifo.c:243
globus_fifo_t * globus_fifo_copy(const globus_fifo_t *fifo)
Definition: globus_fifo.c:155
int globus_fifo_move(globus_fifo_t *fifo_dest, globus_fifo_t *fifo_src)
Definition: globus_fifo.c:287
void globus_fifo_destroy(globus_fifo_t *fifo)
Definition: globus_fifo.c:57
int globus_fifo_empty(const globus_fifo_t *fifo)
Definition: globus_fifo.c:97
int globus_fifo_enqueue(globus_fifo_t *fifo, void *datum)
Definition: globus_fifo.c:119
int globus_fifo_init(globus_fifo_t *fifo)
Initialize the fifo structure.
Definition: globus_fifo.c:40
globus_list_t * globus_fifo_convert_to_list(globus_fifo_t *fifo)
Definition: globus_fifo.c:318
void globus_fifo_destroy_all(globus_fifo_t *fifo, void(*datum_free)(void *))
Definition: globus_fifo.c:76
void * globus_fifo_dequeue(globus_fifo_t *fifo)
Definition: globus_fifo.c:216