1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
samba-mirror/source3/printing/printer_list.h
David Disseldorp 3e61c97a7e s3-printing: remove printer_list_need_refresh
printer_list_need_refresh() was used previously to ensure one smbd
process did not attempt to update the printer_list tdb during or soon
after update by another smbd.

It is no longer needed, as pcap updates are now only performed by the
parent smbd process following startup, SIGHUP, config update or printcap
cache time expiry.
2011-01-07 15:37:39 -08:00

100 lines
3.2 KiB
C

/*
Unix SMB/CIFS implementation.
Share Database of available printers.
Copyright (C) Simo Sorce 2010
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _PRINTER_LIST_H_
#define _PRINTER_LIST_H_
bool printer_list_parent_init(void);
/**
* @brief Get the comment and the last refresh time from the printer list
* database.
*
* @param[in] mem_ctx The talloc memory context to use.
*
* @param[in] name The printer name to lookup.
*
* @param[out] comment A pointer to store the comment of the printer.
*
* @param[out] last_refresh A pointer to store the last refresh time of the
* printer.
*
* @return NT_STATUS_OK on success, a correspoining NTSTATUS error
* code on a failure.
*/
NTSTATUS printer_list_get_printer(TALLOC_CTX *mem_ctx,
const char *name,
const char **comment,
time_t *last_refresh);
/**
* @brief Add a printer to the printer list database.
*
* @param[in] mem_ctx The talloc memory context to use.
*
* @param[in] name The printer name to store in the db.
*
* @param[in] comment The comment to store in the db.
*
* @param[in] last_refresh The last refresh time of the printer to store in
* the db.
*
* @return NT_STATUS_OK on success, a correspoining NTSTATUS error
* code on a failure.
*/
NTSTATUS printer_list_set_printer(TALLOC_CTX *mem_ctx,
const char *name,
const char *comment,
time_t last_refresh);
/**
* @brief Get the time of the last refresh of the printer database.
*
* @param[out] last_refresh The last refresh time in the db.
*
* @return NT_STATUS_OK on success, a correspoining NTSTATUS error
* code on a failure.
*/
NTSTATUS printer_list_get_last_refresh(time_t *last_refresh);
/**
* @brief Mark the database as reloaded.
*
* This sets the last refresh time to the current time. You can get the last
* reload/refresh time of the database with printer_list_get_last_refresh().
*
* @return NT_STATUS_OK on success, a correspoining NTSTATUS error
* code on a failure.
*/
NTSTATUS printer_list_mark_reload(void);
/**
* @brief Cleanup old entries in the database.
*
* Entries older than the last refresh times will be deleted.
*
* @return NT_STATUS_OK on success, a correspoining NTSTATUS error
* code on a failure.
*/
NTSTATUS printer_list_clean_old(void);
NTSTATUS printer_list_run_fn(void (*fn)(const char *, const char *, void *),
void *private_data);
#endif /* _PRINTER_LIST_H_ */