Initial revision
[yaz-moved-to-github.git] / odr / odr_use.c
diff --git a/odr/odr_use.c b/odr/odr_use.c
new file mode 100644 (file)
index 0000000..4d69073
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 1994, Index Data I/S 
+ * All rights reserved.
+ * Sebastian Hammer, Adam Dickmeiss
+ *
+ * $Log: odr_use.c,v $
+ * Revision 1.1  1995-02-03 17:04:39  quinn
+ * Initial revision
+ *
+ */
+
+#include <odr.h>
+#include <odr_use.h>
+
+int odr_external(ODR o, Odr_external **p, int opt)
+{
+    Odr_external *pp;
+    
+    odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL);
+    if (!odr_sequence_begin(o, p, sizeof(Odr_external)))
+       return opt;
+    pp = *p;
+    return
+       odr_oid(o, &pp->direct_reference, 1) &&
+       odr_integer(o, &pp->indirect_reference, 1) &&
+       odr_graphicstring(o, &pp->descriptor, 1) &&
+       odr_implicit(o, odr_octetstring, &pp->octet_aligned, ODR_CONTEXT,
+           1, 0) &&
+       odr_sequence_end(o);
+}
+
+int odr_visiblestring(ODR o, char **p, int opt)
+{
+    return odr_implicit(o, odr_cstring, p, ODR_UNIVERSAL, ODR_VISIBLESTRING,
+       opt);
+}    
+
+int odr_graphicstring(ODR o, char **p, int opt)
+{
+    return odr_implicit(o, odr_cstring, p, ODR_UNIVERSAL, ODR_GRAPHICSTRING,
+       opt);
+}