1999-10-16 21:49:28 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* logtape.h
|
|
|
|
* Management of "logical tapes" within temporary files.
|
|
|
|
*
|
|
|
|
* See logtape.c for explanations.
|
|
|
|
*
|
2014-01-07 22:05:30 +01:00
|
|
|
* Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
|
2000-01-26 06:58:53 +01:00
|
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
1999-10-16 21:49:28 +02:00
|
|
|
*
|
2010-09-20 22:08:53 +02:00
|
|
|
* src/include/utils/logtape.h
|
1999-10-16 21:49:28 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef LOGTAPE_H
|
|
|
|
#define LOGTAPE_H
|
|
|
|
|
|
|
|
/* LogicalTapeSet is an opaque type whose details are not known outside logtape.c. */
|
|
|
|
|
|
|
|
typedef struct LogicalTapeSet LogicalTapeSet;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* prototypes for functions in logtape.c
|
|
|
|
*/
|
|
|
|
|
|
|
|
extern LogicalTapeSet *LogicalTapeSetCreate(int ntapes);
|
|
|
|
extern void LogicalTapeSetClose(LogicalTapeSet *lts);
|
2006-03-07 20:06:50 +01:00
|
|
|
extern void LogicalTapeSetForgetFreeSpace(LogicalTapeSet *lts);
|
1999-10-16 21:49:28 +02:00
|
|
|
extern size_t LogicalTapeRead(LogicalTapeSet *lts, int tapenum,
|
2000-04-12 19:17:23 +02:00
|
|
|
void *ptr, size_t size);
|
1999-10-16 21:49:28 +02:00
|
|
|
extern void LogicalTapeWrite(LogicalTapeSet *lts, int tapenum,
|
2000-04-12 19:17:23 +02:00
|
|
|
void *ptr, size_t size);
|
1999-10-16 21:49:28 +02:00
|
|
|
extern void LogicalTapeRewind(LogicalTapeSet *lts, int tapenum, bool forWrite);
|
|
|
|
extern void LogicalTapeFreeze(LogicalTapeSet *lts, int tapenum);
|
|
|
|
extern bool LogicalTapeBackspace(LogicalTapeSet *lts, int tapenum,
|
2000-04-12 19:17:23 +02:00
|
|
|
size_t size);
|
1999-10-16 21:49:28 +02:00
|
|
|
extern bool LogicalTapeSeek(LogicalTapeSet *lts, int tapenum,
|
2000-04-12 19:17:23 +02:00
|
|
|
long blocknum, int offset);
|
1999-10-16 21:49:28 +02:00
|
|
|
extern void LogicalTapeTell(LogicalTapeSet *lts, int tapenum,
|
2000-04-12 19:17:23 +02:00
|
|
|
long *blocknum, int *offset);
|
2005-10-19 00:59:37 +02:00
|
|
|
extern long LogicalTapeSetBlocks(LogicalTapeSet *lts);
|
2001-10-28 07:26:15 +01:00
|
|
|
|
2001-11-05 18:46:40 +01:00
|
|
|
#endif /* LOGTAPE_H */
|