1/*- 2 * Copyright (c) 2006, Maxime Henrion <mux@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD$ 27 */ 28#ifndef _STATUS_H_ 29#define _STATUS_H_ 30 31#include <time.h> 32 33struct coll; 34struct fattr; 35struct status; 36 37#define SR_DIRDOWN 0 38#define SR_CHECKOUTLIVE 1 39#define SR_CHECKOUTDEAD 2 40#define SR_FILELIVE 3 41#define SR_FILEDEAD 4 42#define SR_DIRUP 5 43 44struct statusrec { 45 int sr_type; 46 char *sr_file; 47 char *sr_tag; 48 char *sr_date; 49 char *sr_revnum; 50 char *sr_revdate; 51 52 /* 53 * "clientrttr" contains the attributes of the client's file if there 54 * is one. "serverattr" contains the attributes of the corresponding 55 * file on the server. In CVS mode, these are identical. But in 56 * checkout mode, "clientattr" represents the checked-out file while 57 * "serverattr" represents the corresponding RCS file on the server. 58 */ 59 struct fattr *sr_serverattr; 60 struct fattr *sr_clientattr; 61}; 62 63struct status *status_open(struct coll *, time_t, char **); 64int status_get(struct status *, char *, int, int, 65 struct statusrec **); 66int status_put(struct status *, struct statusrec *); 67int status_eof(struct status *); 68char *status_errmsg(struct status *); 69int status_delete(struct status *, char *, int); 70void status_close(struct status *, char **); 71 72#endif /* !_STATUS_H_ */ 73