summaryrefslogtreecommitdiffstats
path: root/ldap/servers/plugins/replication/cl4_api.h
blob: c0b20e573150a84ecb7bc514eb3f4129d8a608f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/** BEGIN COPYRIGHT BLOCK
 * Copyright 2001 Sun Microsystems, Inc.
 * Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
 * All rights reserved.
 * END COPYRIGHT BLOCK **/
/* cl4_api.h - minimal interface to 4.0 changelog necessary to link 4.0 changelog
			   to 5.0 replication
 */

#ifndef CL4_API_H
#define CL4_API_H

#include "repl.h"

/*** Error Codes ***/
enum
{
	CL4_SUCCESS,
	CL4_BAD_DATA,
	CL4_BAD_FORMAT,
	CL4_NOT_FOUND,
	CL4_MEMORY_ERROR,
	CL4_CSNPL_ERROR,
	CL4_LDAP_ERROR,
	CL4_INTERNAL_ERROR
};

/*** APIs ***/
/*	Name:			cl4Init
	Description:	initializes 4.0 changelog subsystem
	Parameters:		none
	Return:			????
 */
int cl4Init ();

/*	Name:			cl4WriteOperation
	Description:	logs operation to 4.0 changelog; operation must go through CD&R engine first
	Parameters:		op - operation to be logged
					
	Return:			????
 */
int cl4WriteOperation (const slapi_operation_parameters *op);

/*	Name:			cl4ChangeTargetDN
	Description:	modifies change entry target dn; should be called for conflicts due to naming collisions;
					raw dn should be passed for add operations; normolized dn otherwise.
	Parameters:		csn - csn of the change entry to be modified
					newDN - new target dn of the entry
	Return:			????
 */
int cl4ChangeTargetDN (const CSN* csn, const char *newDN);

/*	Name:			cl4AssignChangeNumbers
	Description:	this function should be called periodically to assign change numbers to changelog
					entries. Intended for use with event queue
	Parameters:		parameters are not currently used
	Return:			none
 */
void cl4AssignChangeNumbers (time_t when, void *arg);

/*	Name:			cl4Cleanup
	Description:	frees memory held by 4.0 changelog subsystem
	Parameters:		none
	Return:			none
 */
void cl4Clean ();
#endif