/usr/share/doc/libyazpp-doc/implementations.html is in libyazpp-doc 1.6.5-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>2. Implementations</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="YAZ++ User's Guide and Reference"><link rel="up" href="api.html" title="Chapter 4. YAZ C++ API"><link rel="prev" href="api.html" title="Chapter 4. YAZ C++ API"><link rel="next" href="license.html" title="Appendix A. License"></head><body><link rel="stylesheet" type="text/css" href="common/style1.css"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2. Implementations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Chapter 4. YAZ C++ API</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="implementations"></a>2. Implementations</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="Yaz_SocketManager"></a>2.1. Yaz_SocketManager</h3></div></div></div><p>
This class implements the <a class="link" href="api.html#ISocketObservable" title="1.1. ISocketObservable">
ISocketObservable</a> interface. It is a portable
socket wrapper around the select call.
This implementation is useful for daemons,
command-line clients, etc.
</p><pre class="synopsis">
#include <yazpp/socket-manager.h>
class SocketManager : public ISocketObservable {
public:
// Add an observer
virtual void addObserver(int fd, ISocketObserver *observer);
// Delete an observer
virtual void deleteObserver(ISocketObserver *observer);
// Delete all observers
virtual void deleteObservers();
// Set event mask for observer
virtual void maskObserver(ISocketObserver *observer, int mask);
// Set timeout
virtual void timeoutObserver(ISocketObserver *observer,
unsigned timeout);
// Process one event. return > 0 if event could be processed;
int processEvent();
SocketManager();
virtual ~SocketManager();
};
</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="PDU_Assoc"></a>2.2. PDU_Assoc</h3></div></div></div><p>
This class implements the interfaces
<a class="link" href="api.html#IPDU_Observable" title="1.3. IPDU_Observable">IPDU_Observable</a>
and
<a class="link" href="api.html#ISocketObserver" title="1.2. ISocketObserver">ISocketObserver</a>.
This object implements a non-blocking client/server channel
that transmits BER encoded PDUs (or those offered by YAZ COMSTACK).
</p><pre class="synopsis">
#include <yazpp/pdu-assoc.h>
class PDU_Assoc : public IPDU_Observable,
ISocketObserver {
public:
COMSTACK comstack(const char *type_and_host, void **vp);
// Create object using specified socketObservable
PDU_Assoc(ISocketObservable *socketObservable);
// Create Object using existing comstack
PDU_Assoc(ISocketObservable *socketObservable,
COMSTACK cs);
// Close socket and destroy object.
virtual ~PDU_Assoc();
// Clone the object
IPDU_Observable *clone();
// Send PDU
int send_PDU(const char *buf, int len);
// connect to server (client role)
void connect(IPDU_Observer *observer, const char *addr);
// listen for clients (server role)
void listen(IPDU_Observer *observer, const char *addr);
// Socket notification
void socketNotify(int event);
// Close socket
void close();
// Close and destroy
void destroy();
// Set Idle Time
void idleTime (int timeout);
// Child start...
virtual void childNotify(COMSTACK cs);
};
</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="Z_Assoc"></a>2.3. Z_Assoc</h3></div></div></div><p>
This class implements the interface
<a class="link" href="api.html#IPDU_Observer" title="1.4. IPDU_Observer">IPDU_Obserer</a>.
This object implements a Z39.50 client/server channel, aka
Z-Association.
</p><pre class="synopsis">
#include <yazpp/z-assoc.h>
class Z_Assoc : public IPDU_Observer {
public:
// Create object using the PDU Observer specified
Z_Assoc(IPDU_Observable *the_PDU_Observable);
// Destroy association and close PDU Observer
virtual ~Z_Assoc();
// Receive PDU
void recv_PDU(const char *buf, int len);
// Connect notification
virtual void connectNotify() = 0;
// Failure notification
virtual void failNotify() = 0;
// Timeout notification
virtual void timeoutNotify() = 0;
// Timeout specify
void timeout(int timeout);
// Begin Z39.50 client role
void client(const char *addr);
// Begin Z39.50 server role
void server(const char *addr);
// Close connection
void close();
// Decode Z39.50 PDU.
Z_APDU *decode_Z_PDU(const char *buf, int len);
// Encode Z39.50 PDU.
int encode_Z_PDU(Z_APDU *apdu, char **buf, int *len);
// Send Z39.50 PDU
int send_Z_PDU(Z_APDU *apdu);
// Receive Z39.50 PDU
virtual void recv_Z_PDU(Z_APDU *apdu) = 0;
// Create Z39.50 PDU with reasonable defaults
Z_APDU *create_Z_PDU(int type);
// Request Alloc
ODR odr_encode ();
ODR odr_decode ();
ODR odr_print ();
void set_APDU_log(const char *fname);
const char *get_APDU_log();
// OtherInformation
void get_otherInfoAPDU(Z_APDU *apdu, Z_OtherInformation ***oip);
Z_OtherInformationUnit *update_otherInformation (
Z_OtherInformation **otherInformationP, int createFlag,
int *oid, int categoryValue, int deleteFlag);
void set_otherInformationString (
Z_OtherInformation **otherInformationP,
int *oid, int categoryValue,
const char *str);
void set_otherInformationString (
Z_OtherInformation **otherInformation,
int oidval, int categoryValue,
const char *str);
void set_otherInformationString (
Z_APDU *apdu,
int oidval, int categoryValue,
const char *str);
Z_ReferenceId *getRefID(char* str);
Z_ReferenceId **get_referenceIdP(Z_APDU *apdu);
void transfer_referenceId(Z_APDU *from, Z_APDU *to);
const char *get_hostname();
};
</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="IR_Assoc"></a>2.4. IR_Assoc</h3></div></div></div><p>
This object is just a specialization of
<a class="link" href="implementations.html#Z_Assoc" title="2.3. Z_Assoc">Z_Assoc</a>. It provides
more facilities for the Z39.50 client role.
</p><pre class="synopsis">
#include <yazpp/ir-assoc.h>
class IR_Assoc : public Z_Assoc {
...
};
</pre><p>
The example client, <code class="filename">yaz-my-client.cpp</code>,
uses this class.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="Z_Server"></a>2.5. Z_Server</h3></div></div></div><p>
This object is just a specialization of
<a class="link" href="implementations.html#Z_Assoc" title="2.3. Z_Assoc">Z_Assoc</a>. It provides
more facilities for the Z39.50 server role.
</p><pre class="synopsis">
#include <yazpp/z-server.h>
class My_Server : public Z_Server {
...
};
</pre><p>
The example server, <code class="filename">yaz-my-server.cpp</code>,
uses this class.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="api.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. YAZ C++ API </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. License</td></tr></table></div></body></html>
|