Improved installation. Moved header files to include/yaz.
[yaz-moved-to-github.git] / asn / prt-dat.c
index c10f5a3..c396b99 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of the YAZ toolkit:
- * Copyright (c) 1998, Index Data.
+ * Copyright (c) 1998-1999, Index Data.
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
@@ -8,17 +8,27 @@
  *  Databasix Information Systems B.V., Utrecht, The Netherlands.
  *
  * $Log: prt-dat.c,v $
- * Revision 1.1  1998-02-10 15:31:46  adam
+ * Revision 1.4  1999-11-30 13:47:11  adam
+ * Improved installation. Moved header files to include/yaz.
+ *
+ * Revision 1.3  1999/04/20 09:56:47  adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.2  1998/02/11 11:53:32  adam
+ * Changed code so that it compiles as C++.
+ *
+ * Revision 1.1  1998/02/10 15:31:46  adam
  * Implemented date and time structure. Changed the Update Extended
  * Service.
  *
  */
 
-#include <proto.h>
+#include <yaz/proto.h>
 
-int z_MonthAndDay(ODR o, Z_MonthAndDay **p, int opt)
+int z_MonthAndDay(ODR o, Z_MonthAndDay **p, int opt, const char *name)
 {
-    if (!odr_sequence_begin(o, p, sizeof(**p)))
+    if (!odr_sequence_begin(o, p, sizeof(**p), 0))
        return opt && odr_ok(o);
     return
        odr_implicit(o, odr_integer, &(*p)->month, ODR_CONTEXT, 2, 0) &&
@@ -26,85 +36,98 @@ int z_MonthAndDay(ODR o, Z_MonthAndDay **p, int opt)
        odr_sequence_end(o);
 }
 
-int z_Quarter(ODR o, Z_Quarter **p, int opt)
+int z_Quarter(ODR o, Z_Quarter **p, int opt, const char *name)
 {
     static Odr_arm arm[] =
     {
-       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Quarter_first, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Quarter_second, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Quarter_third, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Quarter_fourth, odr_null},
-       {-1, -1, -1, -1, 0}
+       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Quarter_first,
+        (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Quarter_second,
+        (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Quarter_third,
+        (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Quarter_fourth,
+        (Odr_fun)odr_null, 0},
+       {-1, -1, -1, -1, 0, 0}
     };
-
+    
     if (!odr_initmember(o, p, sizeof(**p)))
        return opt && odr_ok(o);
-    if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+    if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
        return 1;
     *p = 0;
     return opt && odr_ok(o);
 }
 
-int z_Season(ODR o, Z_Season **p, int opt)
+int z_Season(ODR o, Z_Season **p, int opt, const char *name)
 {
     static Odr_arm arm[] =
     {
-       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Season_winter, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Season_spring, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Season_summer, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Season_autumn, odr_null},
-       {-1, -1, -1, -1, 0}
+       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Season_winter,
+        (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Season_spring,
+        (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Season_summer,
+        (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Season_autumn,
+        (Odr_fun)odr_null, 0},
+       {-1, -1, -1, -1, 0, 0}
     };
 
     if (!odr_initmember(o, p, sizeof(**p)))
        return opt && odr_ok(o);
-    if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+    if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
        return 1;
     *p = 0;
     return opt && odr_ok(o);
 }
 
-int z_PartOfYear(ODR o, Z_PartOfYear **p, int opt)
+int z_PartOfYear(ODR o, Z_PartOfYear **p, int opt, const char *name)
 {
     static Odr_arm arm[] =
     {
-       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PartOfYear_monthAndDay, z_MonthAndDay},
-       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PartOfYear_julianDay, odr_integer},
-       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PartOfYear_weekNumber, odr_integer},
-       {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_PartOfYear_quarter, z_Quarter},
-       {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_PartOfYear_season, z_Season},
-       {-1, -1, -1, -1, 0}
+       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PartOfYear_monthAndDay,
+        (Odr_fun) z_MonthAndDay, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PartOfYear_julianDay,
+        (Odr_fun) odr_integer, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PartOfYear_weekNumber,
+        (Odr_fun) odr_integer, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_PartOfYear_quarter,
+        (Odr_fun) z_Quarter, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_PartOfYear_season,
+        (Odr_fun) z_Season, 0},
+       {-1, -1, -1, -1, 0, 0}
     };
-
+    
     if (!odr_initmember(o, p, sizeof(**p)))
        return opt && odr_ok(o);
-    if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+    if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
        return 1;
     *p = 0;
     return opt && odr_ok(o);
 }
 
-int z_Era(ODR o, Z_Era **p, int opt)
+int z_Era(ODR o, Z_Era **p, int opt, const char *name)
 {
     static Odr_arm arm[] =
     {
-       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium, odr_null},
-       {-1, -1, -1, -1, 0}
+       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade, (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century, (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium, (Odr_fun)odr_null, 0},
+       {-1, -1, -1, -1, 0, 0}
     };
-
+    
     if (!odr_initmember(o, p, sizeof(**p)))
        return opt && odr_ok(o);
-    if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+    if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
        return 1;
     *p = 0;
     return opt && odr_ok(o);
 }
 
-int z_DateFlags(ODR o, Z_DateFlags **p, int opt)
+int z_DateFlags(ODR o, Z_DateFlags **p, int opt, const char *name)
 {
-    if (!odr_sequence_begin(o, p, sizeof(**p)))
+    if (!odr_sequence_begin(o, p, sizeof(**p), 0))
        return opt && odr_ok(o);
     return
        odr_implicit(o, odr_null, &(*p)->circa, ODR_CONTEXT, 1, 1) &&
@@ -112,9 +135,9 @@ int z_DateFlags(ODR o, Z_DateFlags **p, int opt)
        odr_sequence_end(o);
 }
 
-int z_Date(ODR o, Z_Date **p, int opt)
+int z_Date(ODR o, Z_Date **p, int opt, const char *name)
 {
-    if (!odr_sequence_begin(o, p, sizeof(**p)))
+    if (!odr_sequence_begin(o, p, sizeof(**p), 0))
        return opt && odr_ok(o);
     return
        odr_implicit(o, odr_integer, &(*p)->year, ODR_CONTEXT, 1, 0) &&
@@ -123,27 +146,28 @@ int z_Date(ODR o, Z_Date **p, int opt)
        odr_sequence_end(o);
 }
 
-int z_Zone(ODR o, Z_Zone **p, int opt)
+int z_Zone(ODR o, Z_Zone **p, int opt, const char *name)
 {
     static Odr_arm arm[] =
     {
-       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Zone_local, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Zone_utc, odr_null},
-       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Zone_utcOffset, odr_integer},
-       {-1, -1, -1, -1, 0}
+       {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Zone_local, (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Zone_utc, (Odr_fun)odr_null, 0},
+       {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Zone_utcOffset,
+        (Odr_fun)odr_integer, 0},
+       {-1, -1, -1, -1, 0, 0}
     };
-
+    
     if (!odr_initmember(o, p, sizeof(**p)))
        return opt && odr_ok(o);
-    if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+    if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
        return 1;
     *p = 0;
     return opt && odr_ok(o);
 }
 
-int z_Time(ODR o, Z_Time **p, int opt)
+int z_Time(ODR o, Z_Time **p, int opt, const char *name)
 {
-    if (!odr_sequence_begin(o, p, sizeof(**p)))
+    if (!odr_sequence_begin(o, p, sizeof(**p), 0))
        return opt && odr_ok(o);
     return
        odr_implicit(o, odr_integer, &(*p)->hour, ODR_CONTEXT, 1, 0) &&
@@ -154,9 +178,9 @@ int z_Time(ODR o, Z_Time **p, int opt)
        odr_sequence_end(o);
 }
 
-int z_DateTime(ODR o, Z_DateTime **p, int opt)
+int z_DateTime(ODR o, Z_DateTime **p, int opt, const char *name)
 {
-    if (!odr_sequence_begin(o, p, sizeof(**p)))
+    if (!odr_sequence_begin(o, p, sizeof(**p), 0))
        return opt && odr_ok(o);
     return
        odr_implicit(o, z_Date, &(*p)->z3950Date, ODR_CONTEXT, 1, 1) &&