Added new class GDU.
[yazpp-moved-to-github.git] / include / yaz++ / gdu.h
diff --git a/include/yaz++/gdu.h b/include/yaz++/gdu.h
new file mode 100644 (file)
index 0000000..ede395e
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 1998-2005, Index Data.
+ * See the file LICENSE for details.
+ * 
+ * $Id: gdu.h,v 1.1 2005-06-21 17:37:15 adam Exp $
+ */
+
+#ifndef YAZPP_GDU_INCLUDED
+#define YAZPP_GDU_INCLUDED
+
+#include <yaz/yconfig.h>
+#include <yaz/proto.h>
+
+namespace yazpp_1 {
+
+    class YAZ_EXPORT GDU {
+    public:
+       GDU(Z_GDU *gdu);
+       GDU(Z_APDU *apdu);
+       ~GDU();
+       Z_GDU *get();
+       void extract_odr_to(ODR dst);
+    private:
+       void base(Z_GDU *gdu, ODR o);
+       Z_GDU *m_gdu;
+       ODR m_decode;
+    };
+
+    class GDUQueue_List {
+       friend class GDUQueue;
+    private:
+       GDU *m_item;
+       GDUQueue_List *m_next;
+    };
+
+    class GDUQueue {
+    public:
+       GDUQueue();
+       ~GDUQueue();
+       void clear();
+       void enqueue(GDU *gdu);
+       GDU *dequeue();
+       int size();
+    private:
+       GDUQueue_List *m_list;
+    };
+};
+
+#endif