/*-
 * Copyright (c) 2003, 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
 * Redistribution and modifications are permitted subject to BSD license.
 */
#ifndef	_RELATIVE_OID_H_
#define	_RELATIVE_OID_H_

#include <constr_TYPE.h>
#include <OBJECT_IDENTIFIER.h>

/* Implemented in terms of OBJECT IDENTIFIER */
typedef OBJECT_IDENTIFIER_t RELATIVE_OID_t;

extern asn1_TYPE_descriptor_t asn1_DEF_RELATIVE_OID;

asn_struct_print_f RELATIVE_OID_print;

/**********************************
 * Some handy conversion routines *
 **********************************/

/* See OBJECT_IDENTIFIER_set_arcs_l() function in OBJECT_IDENTIFIER.h */
int RELATIVE_OID_set_arcs_l(RELATIVE_OID_t *_roid,
	unsigned long *arcs, int arcs_slots);

/* See OBJECT_IDENTIFIER_get_arcs() function in OBJECT_IDENTIFIER.h */
int RELATIVE_OID_get_arcs(RELATIVE_OID_t *_roid,
	void *arcs, unsigned int arc_type_size, unsigned int arc_slots);

#endif	/* _RELATIVE_OID_H_ */
