/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* onc720 src/oncplus/usr/include/nsl/client_cache.h 1.2                  */
/*                                                                        */
/*                                                                        */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1996,1999              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* @(#)32	1.2  src/oncplus/usr/include/nsl/client_cache.h, nisplus, onc720 7/25/99 15:50:44  */
/*
 *   COMPONENT_NAME: onchdrs
 *
 *   FUNCTIONS: none
 *
 *   ORIGINS: 162
 *
 */

/*
 *	Copyright (c) 1996, by Sun Microsystems, Inc.
 *	All rights reserved.
 */

#ifndef	__CLIENT_CACHE_H
#define	__CLIENT_CACHE_H

/*
*/

#include <netdir.h>
#include <netconfig.h>
#include <nsl/mapped_cache.h>

class NisClientCache : public NisMappedCache {
    public:
	NisClientCache(nis_error &error);
	~NisClientCache();

	int okay();
	nis_error bindReplica(char *dname, nis_bound_directory **binding);
	nis_error bindMaster(char *dname, nis_bound_directory **binding);
	nis_error bindServer(nis_server *srv, int nsrv,
			nis_bound_directory **binding);
	int refreshBinding(nis_bound_directory *binding);
	int refreshAddress(nis_bound_endpoint *bep);
	int refreshCallback(nis_bound_endpoint *bep);
	bool_t readColdStart();
	nis_error cachePing(nis_server *srv, int nsrv);

    private:
	CLIENT *mgr_clnt;	/* rpc handle connected to cache manager */
	netconfig *ticlts;	/* cached netconfig entry for ticlts */
	char *curUaddr;		/* uaddr of cache manager */
	int curFd;		/* fd in mgr_clnt */
	dev_t curRdev;
	pid_t curPid;
	int cache_is_bad;

	CLIENT *clientHandle();
	void setClntState();
	int checkClntState();
	void cacheIsBad();
};

#endif	/* __CLIENT_CACHE_H */
