X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Foid_util.h;h=e53577017530b1331b244e2489692221d4c841e4;hp=3dafc0d9743a6bd8e82e74a1db2b58544472411a;hb=916ddaa16e2fe4f4bd649b463be12e7854f98dc8;hpb=be821514c869d68186361b5aab6bbfd1aa60e087 diff --git a/include/yaz/oid_util.h b/include/yaz/oid_util.h index 3dafc0d..e535770 100644 --- a/include/yaz/oid_util.h +++ b/include/yaz/oid_util.h @@ -1,5 +1,5 @@ -/* - * Copyright (c) 1995-2007, Index Data +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2013 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: @@ -24,15 +24,10 @@ * (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.2 2007-04-12 20:47:27 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 @@ -44,6 +39,8 @@ YAZ_BEGIN_CDECL #define OID_SIZE 20 #define OID_STR_MAX 256 +typedef short Odr_oid; /* terminate by -1 */ + typedef enum oid_proto { PROTO_NOP=0, @@ -54,33 +51,51 @@ typedef enum oid_proto 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_oid_to_dotstring(const int *oid, char *oidbuf); -YAZ_EXPORT int oid_dotstring_to_oid(const char *name, int *oid); + +/** \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 @@ -88,6 +103,7 @@ YAZ_END_CDECL /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab