-/*
- * Copyright (c) 1995-2007, Index Data
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2012 Index Data.
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/* $Id: oid_util.h,v 1.1 2007-04-12 13:52:57 adam Exp $ */
/**
* \file oid_util.h
- * \brief Header for OID database
- *
- * More or less protocol-transparent OID database.
- * We could (and should?) extend this so that the user app can add new
- * entries to the list at initialization.
+ * \brief Header for OID basic functions
*/
#ifndef OID_UTIL_H
#define OID_UTIL_H
#define OID_SIZE 20
#define OID_STR_MAX 256
+typedef short Odr_oid; /* terminate by -1 */
+
typedef enum oid_proto
{
PROTO_NOP=0,
PROTO_HTTP
} oid_proto;
-typedef enum oid_class
-{
- CLASS_NOP=0,
- CLASS_APPCTX,
- CLASS_ABSYN,
- CLASS_ATTSET,
- CLASS_TRANSYN,
- CLASS_DIAGSET,
- CLASS_RECSYN,
- CLASS_RESFORM,
- CLASS_ACCFORM,
- CLASS_EXTSERV,
- CLASS_USERINFO,
- CLASS_ELEMSPEC,
- CLASS_VARSET,
- CLASS_SCHEMA,
- CLASS_TAGSET,
- CLASS_GENERAL,
- CLASS_NEGOT
-} oid_class;
-
-YAZ_EXPORT void oid_oidcpy(int *t, const int *s);
-YAZ_EXPORT void oid_oidcat(int *t, const int *s);
-YAZ_EXPORT int oid_oidcmp(const int *o1, const int *o2);
-YAZ_EXPORT int oid_oidlen(const int *o);
-YAZ_EXPORT char *oid_to_dotstring(const int *oid, char *oidbuf);
+
+/** \brief copies OID
+ \param t destination OID
+ \param s source OID
+*/
+YAZ_EXPORT void oid_oidcpy(Odr_oid *t, const Odr_oid *s);
+
+/** \brief appends to OID
+ \param t destination OID
+ \param s source OID
+*/
+YAZ_EXPORT void oid_oidcat(Odr_oid *t, const Odr_oid *s);
+
+
+/** \brief compares OIDs
+ \param o1 first OID
+ \param o2 second OID
+ \retval 0 equal
+ \retval >0 o1 greater than o2
+ \retval <0 o1 less than o2
+*/
+YAZ_EXPORT int oid_oidcmp(const Odr_oid *o1, const Odr_oid *o2);
+
+
+/** \brief returns length of OIDs
+ \param o OID
+ \returns length as number of Odr_oids
+*/
+YAZ_EXPORT int oid_oidlen(const Odr_oid *o);
+
+/** \brief converts OID to string (dot notation)
+ \param oid OID
+ \param oidbuf resulting buffer which should be at least of size OID_STR_MAX
+ \returns result (same as oidbuf)
+*/
+YAZ_EXPORT char *oid_oid_to_dotstring(const Odr_oid *oid, char *oidbuf);
+
+
+/** \brief converts dot string to OID
+ \param name dot string OID, e.g. "1.2.840.10003.2.1"
+ \param oid resulting OID buffer which should be at least of size OID_SIZE
+ \retval 0 OK
+ \retval -1 failure
+*/
+YAZ_EXPORT int oid_dotstring_to_oid(const char *name, Odr_oid *oid);
+
YAZ_END_CDECL
#endif
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab