/*
- * Copyright (c) 1998-2000, Index Data.
+ * Copyright (c) 1998-2005, Index Data.
* See the file LICENSE for details.
*
- * $Id: z-assoc.h,v 1.1 2002-10-09 12:50:26 adam Exp $
+ * $Id: z-assoc.h,v 1.9 2005-06-21 17:37:15 adam Exp $
*/
#ifndef YAZ_Z_ASSOC_INCLUDED
#define YAZ_Z_ASSOC_INCLUDED
+#include <yaz/srw.h>
#include <yaz/proto.h>
#include <yaz/odr.h>
#include <yaz++/pdu-observer.h>
+namespace yazpp_1 {
/** Z39.50 Assocation.
This object implements the client - and server role of a generic
Z39.50 Association.
*/
-class YAZ_EXPORT Yaz_Z_Assoc : public IYaz_PDU_Observer {
+class YAZ_EXPORT Z_Assoc : public IPDU_Observer {
public:
/// Create object using the PDU Observer specified
- Yaz_Z_Assoc(IYaz_PDU_Observable *the_PDU_Observable);
+ Z_Assoc(IPDU_Observable *the_PDU_Observable);
/// Destroy assocation and close PDU Observer
- virtual ~Yaz_Z_Assoc();
+ virtual ~Z_Assoc();
/// Receive PDU
void recv_PDU(const char *buf, int len);
/// Connect notification
/// Timeout specify
void timeout(int timeout);
/// Begin Z39.50 client role
- void client(const char *addr);
+ int client(const char *addr);
/// Begin Z39.50 server role
- void server(const char *addr);
+ int server(const char *addr);
/// Close connection
void close();
/// Decode Z39.50 PDU.
- Z_APDU *decode_Z_PDU(const char *buf, int len);
+ Z_GDU *decode_GDU(const char *buf, int len);
/// Encode Z39.50 PDU.
- int encode_Z_PDU(Z_APDU *apdu, char **buf, int *len);
+ int encode_GDU(Z_GDU *apdu, char **buf, int *len);
/// Send Z39.50 PDU
- int send_Z_PDU(Z_APDU *apdu);
+ int send_Z_PDU(Z_APDU *apdu, int *len);
+ int send_GDU(Z_GDU *apdu, int *len);
/// Receive Z39.50 PDU
- virtual void recv_Z_PDU(Z_APDU *apdu) = 0;
+ virtual void recv_GDU(Z_GDU *apdu, int len) = 0;
/// Create Z39.50 PDU with reasonable defaults
Z_APDU *create_Z_PDU(int type);
/// Request Alloc
const char *get_hostname();
+ int set_APDU_yazlog(int v);
+
private:
static int yaz_init_flag;
static int yaz_init_func();
- IYaz_PDU_Observable *m_PDU_Observable;
+ IPDU_Observable *m_PDU_Observable;
ODR m_odr_in;
ODR m_odr_out;
ODR m_odr_print;
FILE *m_APDU_file;
char *m_APDU_fname;
char *m_hostname;
+ int m_APDU_yazlog;
+};
};
#endif