YAZ++ - A C++ library for YAZ
-$Id: README.txt,v 1.2 1999-01-28 10:04:46 adam Exp $
+$Id: README.txt,v 1.3 1999-02-02 14:01:10 adam Exp $
o Introduction
o Installation, Windows
-Software is 32-bit based and should run on Windows 95/98 and
-Windows NT 4.0 The software was build using Microsoft Visual C++ 5.0 and
-6.0. Other compilers should work but the makefile/project files will have
-created for those compiler environments.
- > cd win
- > nmake (Visual C++ makefile not yet created)
+Software is WIN32 and should run on Windows 95/98 and Windows NT 4.0.
+Yaz++ was build using Microsoft Visual C++ 5.0 and 6.0. Other compilers
+should work but makefile/project files will have created for those
+compiler environments.
+
+ Open workspace yazxx.dsw that includes four projects
+ yazxx.dsp - builds yazxx.dll
+ yazclient.dsp - builds yazclient.exe
+ yazserver.dsp - builds yazserver.exe
+ yazproxy.dsp - builds yazproxy.exe
+
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-ir-assoc.h,v $
- * Revision 1.2 1999-01-28 13:08:39 adam
+ * Revision 1.3 1999-02-02 14:01:12 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:39 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
This object implements the client - and server role of a generic
Z39.50 Association.
*/
-class Yaz_IR_Assoc : public IYaz_PDU_Observer {
+class YAZ_EXPORT Yaz_IR_Assoc : public IYaz_PDU_Observer {
public:
/// Create object using the PDU Observer specified
Yaz_IR_Assoc(IYaz_PDU_Observable *the_PDU_Observable);
virtual void recv_Z_PDU (Z_APDU *apdu) = 0;
/// Create Z39.50 with reasonable defaults
Z_APDU *create_Z_PDU(int type);
+ static int yaz_init_flag;
+ static int yaz_init_func();
private:
IYaz_PDU_Observable *m_PDU_Observable;
ODR m_odr_in;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-pdu-assoc.h,v $
- * Revision 1.2 1999-01-28 13:08:40 adam
+ * Revision 1.3 1999-02-02 14:01:13 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:40 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
the method connect. The server role is initiated by using the
listen method.
*/
-class Yaz_PDU_Assoc : public IYaz_PDU_Observable, IYazSocketObserver {
+class YAZ_EXPORT Yaz_PDU_Assoc : public IYaz_PDU_Observable, IYazSocketObserver {
private:
enum { Connecting, Connected, Listen, Ready, Closed } m_state;
class PDU_Queue {
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-pdu-observer.h,v $
- * Revision 1.2 1999-01-28 13:08:41 adam
+ * Revision 1.3 1999-02-02 14:01:14 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:41 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
transmitted/received over the network. To use this interface the
IYaz_PDU_Observer interface must be implemented.
*/
-class IYaz_PDU_Observable {
+class YAZ_EXPORT IYaz_PDU_Observable {
public:
/// Send encoded PDU buffer of specified length
virtual int send_PDU(const char *buf, int len) = 0;
This interface is used together with the IYaz_PDU_Observable interface
and acts as a callback interface for it.
*/
-class IYaz_PDU_Observer {
+class YAZ_EXPORT IYaz_PDU_Observer {
public:
/// A PDU has been received
virtual void recv_PDU(const char *buf, int len) = 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-proxy.h,v $
- * Revision 1.1 1999-01-28 09:41:07 adam
- * Initial revision
+ * Revision 1.2 1999-02-02 14:01:15 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.1.1.1 1999/01/28 09:41:07 adam
+ * First implementation of YAZ++.
*
*
*/
class Yaz_Proxy;
/// Private class
-class Yaz_ProxyClient : public Yaz_IR_Assoc {
+class YAZ_EXPORT Yaz_ProxyClient : public Yaz_IR_Assoc {
friend Yaz_Proxy;
Yaz_ProxyClient(IYaz_PDU_Observable *the_PDU_Observable);
void recv_Z_PDU(Z_APDU *apdu);
};
/// Private class
-class Yaz_ProxyMap {
+class YAZ_EXPORT Yaz_ProxyMap {
friend Yaz_Proxy;
char *m_databaseName; /* from database name */
char *m_ZURL; /* to this address */
};
/// Information Retrieval Proxy Server.
-class Yaz_Proxy : public Yaz_IR_Assoc {
+class YAZ_EXPORT Yaz_Proxy : public Yaz_IR_Assoc {
public:
Yaz_Proxy(IYaz_PDU_Observable *the_PDU_Observable);
~Yaz_Proxy();
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-socket-manager.h,v $
- * Revision 1.1 1999-01-28 09:41:07 adam
- * Initial revision
+ * Revision 1.2 1999-02-02 14:01:16 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.1.1.1 1999/01/28 09:41:07 adam
+ * First implementation of YAZ++.
*
*/
Implements a stand-alone simple model that uses select(2) to
observe socket events.
*/
-class Yaz_SocketManager : public IYazSocketObservable {
+class YAZ_EXPORT Yaz_SocketManager : public IYazSocketObservable {
private:
struct YazSocketEntry {
IYazSocketObserver *observer;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-socket-observer.h,v $
- * Revision 1.1 1999-01-28 09:41:07 adam
- * Initial revision
+ * Revision 1.2 1999-02-02 14:01:17 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.1.1.1 1999/01/28 09:41:07 adam
+ * First implementation of YAZ++.
*
*/
The maskObserver method specifies which of these events the
observer is intertested in.
*/
-class IYazSocketObservable {
+class YAZ_EXPORT IYazSocketObservable {
public:
/// Add an observer interested in socket fd
virtual void addObserver(int fd, IYazSocketObserver *observer) = 0;
socket events. Look for objects that implements the
IYazSocketObservable interface!
*/
-class IYazSocketObserver {
+class YAZ_EXPORT IYazSocketObserver {
public:
/// Notify the observer that something happened to socket
virtual void socketNotify(int event) = 0;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-client.cpp,v $
- * Revision 1.2 1999-01-28 13:08:42 adam
+ * Revision 1.3 1999-02-02 14:01:18 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:42 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
#include <yaz-pdu-assoc.h>
#include <yaz-socket-manager.h>
-class MyClient : public Yaz_IR_Assoc {
+class YAZ_EXPORT MyClient : public Yaz_IR_Assoc {
public:
MyClient(IYaz_PDU_Observable *the_PDU_Observable);
void recv_Z_PDU(Z_APDU *apdu);
IYaz_PDU_Observer *clone(IYaz_PDU_Observable *the_PDU_Observable);
- void sendInit();
+ void init();
};
void MyClient::recv_Z_PDU(Z_APDU *apdu)
MyClient::MyClient(IYaz_PDU_Observable *the_PDU_Observable) :
Yaz_IR_Assoc (the_PDU_Observable)
{
-
}
-void MyClient::sendInit()
+void MyClient::init()
{
Z_APDU *apdu = create_Z_PDU(Z_APDU_initRequest);
Z_InitRequest *req = apdu->u.initRequest;
int main(int argc, char **argv)
{
Yaz_SocketManager mySocketManager;
+ Yaz_PDU_Assoc *some = new Yaz_PDU_Assoc(&mySocketManager, 0);
- MyClient z(new Yaz_PDU_Assoc(&mySocketManager, 0));
+ MyClient z(some);
- z.client("localhost:9999");
- z.sendInit();
-
+ z.client(argc < 2 ? "localhost:9999" : argv[1]);
+ z.init();
while (mySocketManager.processEvent() > 0)
;
+ return 0;
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-ir-assoc.cpp,v $
- * Revision 1.2 1999-01-28 13:08:43 adam
+ * Revision 1.3 1999-02-02 14:01:19 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:43 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
#include <log.h>
#include <yaz-ir-assoc.h>
+int Yaz_IR_Assoc::yaz_init_func()
+{
+ logf (LOG_LOG, "nmem_init");
+ nmem_init();
+ logf (LOG_LOG, "done");
+ return 1;
+}
+
+int Yaz_IR_Assoc::yaz_init_flag = Yaz_IR_Assoc::yaz_init_func();
+
Yaz_IR_Assoc::Yaz_IR_Assoc(IYaz_PDU_Observable *the_PDU_Observable)
{
m_PDU_Observable = the_PDU_Observable;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-pdu-assoc.cpp,v $
- * Revision 1.2 1999-01-28 13:08:44 adam
+ * Revision 1.3 1999-02-02 14:01:20 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:44 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
cs_close (m_cs);
}
m_cs = 0;
- PDU_Queue **q = &m_queue_out;
- while (*q)
+ while (m_queue_out)
{
- PDU_Queue *q_this = *q;
- *q = (*q)->m_next;
+ PDU_Queue *q_this = m_queue_out;
+ m_queue_out = m_queue_out->m_next;
delete q_this;
}
- free (m_input_buf);
+// free (m_input_buf);
m_input_buf = 0;
m_input_len = 0;
}
int Yaz_PDU_Assoc::send_PDU(const char *buf, int len)
{
+ logf (LOG_LOG, "send_PDU");
PDU_Queue **pq = &m_queue_out;
int is_idle = (*pq ? 0 : 1);
void *ap;
COMSTACK cs = comstack();
+ logf (LOG_LOG, "Yaz_PDU_Assoc::listen %s", addr);
m_PDU_Observer = observer;
if (!cs)
return;
void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer,
const char *addr)
{
- logf (LOG_LOG, "Yaz_PDU_Assoc::connect");
+ logf (LOG_LOG, "Yaz_PDU_Assoc::connect %s", addr);
close();
m_PDU_Observer = observer;
COMSTACK cs = comstack();
void *ap = cs_straddr (cs, addr);
if (!ap)
- return;
+ {
+ logf (LOG_LOG, "cs_straddr failed");
+ return;
+ }
int res = cs_connect (cs, ap);
if (res < 0)
{
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-proxy-main.cpp,v $
- * Revision 1.2 1999-01-28 13:08:45 adam
+ * Revision 1.3 1999-02-02 14:01:21 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:45 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
*
*/
+#include <log.h>
+
#include <yaz-socket-manager.h>
#include <yaz-pdu-assoc.h>
#include <yaz-proxy.h>
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-server.cpp,v $
- * Revision 1.2 1999-01-28 13:08:47 adam
+ * Revision 1.3 1999-02-02 14:01:22 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:47 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
}
while (!stop && mySocketManager.processEvent() > 0)
;
+ return 0;
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: yaz-socket-manager.cpp,v $
- * Revision 1.2 1999-01-28 13:08:48 adam
+ * Revision 1.3 1999-02-02 14:01:23 adam
+ * First WIN32 port of YAZ++.
+ *
+ * Revision 1.2 1999/01/28 13:08:48 adam
* Yaz_PDU_Assoc better encapsulated. Memory leak fix in
* yaz-socket-manager.cc.
*
*
*/
#include <assert.h>
-#ifdef WINDOWS
+#ifdef WIN32
#include <winsock.h>
#else
#include <sys/time.h>
int Yaz_SocketManager::processEvent()
{
+ YazSocketEntry *p;
YazSocketEvent *event = getEvent();
if (event)
{
to.tv_sec = 60;
to.tv_usec = 0;
- for (YazSocketEntry *p = m_observers; p; p = p->next)
+ for (p = m_observers; p; p = p->next)
{
int fd = p->fd;
logf (LOG_LOG, "fd = %d mask=%d", fd, p->mask);
if (errno != EINTR)
return -1;
- for (YazSocketEntry * p = m_observers; p; p = p->next)
+ for (p = m_observers; p; p = p->next)
{
int fd = p->fd;
int mask = 0;
--- /dev/null
+# Microsoft Developer Studio Project File - Name="yazclient" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=yazclient - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "yazclient.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "yazclient.mak" CFG="yazclient - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "yazclient - Win32 Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "yazclient - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "yazclient - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x406 /d "NDEBUG"
+# ADD RSC /l 0x406 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yazxx.lib yaz.lib wsock32.lib /nologo /subsystem:console /machine:I386 /libpath:"../yazxx/release" /libpath:"../../../yaz/release"
+# Begin Special Build Tool
+OutDir=.\Release
+ProjDir=.
+TargetName=yazclient
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "yazclient - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x406 /d "_DEBUG"
+# ADD RSC /l 0x406 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yazxx.lib yaz.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../yazxx/debug" /libpath:"../../../yaz/debug"
+# Begin Special Build Tool
+OutDir=.\Debug
+ProjDir=.
+TargetName=yazclient
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ENDIF
+
+# Begin Target
+
+# Name "yazclient - Win32 Release"
+# Name "yazclient - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\src\yaz-client.cpp"
+# End Source File
+# End Target
+# End Project
--- /dev/null
+# Microsoft Developer Studio Project File - Name="yazproxy" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=yazproxy - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "yazproxy.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "yazproxy.mak" CFG="yazproxy - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "yazproxy - Win32 Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "yazproxy - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "yazproxy - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x406 /d "NDEBUG"
+# ADD RSC /l 0x406 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yazxx.lib yaz.lib wsock32.lib /nologo /subsystem:console /machine:I386 /libpath:"../yazxx/release" /libpath:"../../../yaz/release"
+# Begin Special Build Tool
+OutDir=.\Release
+ProjDir=.
+TargetName=yazproxy
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "yazproxy - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x406 /d "_DEBUG"
+# ADD RSC /l 0x406 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yazxx.lib yaz.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../yazxx/debug" /libpath:"../../../yaz/debug"
+# Begin Special Build Tool
+OutDir=.\Debug
+ProjDir=.
+TargetName=yazproxy
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ENDIF
+
+# Begin Target
+
+# Name "yazproxy - Win32 Release"
+# Name "yazproxy - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\src\yaz-proxy-main.cpp"
+# End Source File
+# End Target
+# End Project
--- /dev/null
+# Microsoft Developer Studio Project File - Name="yazserver" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=yazserver - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "yazserver.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "yazserver.mak" CFG="yazserver - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "yazserver - Win32 Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "yazserver - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "yazserver - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x406 /d "NDEBUG"
+# ADD RSC /l 0x406 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yazxx.lib yaz.lib wsock32.lib /nologo /subsystem:console /machine:I386 /libpath:"../yazxx/release" /libpath:"../../../yaz/release"
+# Begin Special Build Tool
+OutDir=.\Release
+ProjDir=.
+TargetName=yazserver
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "yazserver - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x406 /d "_DEBUG"
+# ADD RSC /l 0x406 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yazxx.lib yaz.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../yazxx/debug" /libpath:"../../../yaz/debug"
+# Begin Special Build Tool
+OutDir=.\Debug
+ProjDir=.
+TargetName=yazserver
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).exe $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ENDIF
+
+# Begin Target
+
+# Name "yazserver - Win32 Release"
+# Name "yazserver - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\src\yaz-server.cpp"
+# End Source File
+# End Target
+# End Project
--- /dev/null
+Microsoft Developer Studio Workspace File, Format Version 5.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "yazclient"=".\yazclient\yazclient.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name yazxx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "yazproxy"=".\yazproxy\yazproxy.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name yazxx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "yazserver"=".\yazserver\yazserver.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name yazxx
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "yazxx"=".\yazxx\yazxx.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
--- /dev/null
+# Microsoft Developer Studio Project File - Name="yazxx" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=yazxx - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "yazxx.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "yazxx.mak" CFG="yazxx - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "yazxx - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "yazxx - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "yazxx - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x406 /d "NDEBUG"
+# ADD RSC /l 0x406 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yaz.lib wsock32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"../../../yaz/release"
+# Begin Special Build Tool
+OutDir=.\Release
+ProjDir=.
+TargetName=yazxx
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).dll $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "yazxx - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../include" /I "../../../yaz/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x406 /d "_DEBUG"
+# ADD RSC /l 0x406 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib yaz.lib wsock32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../yaz/debug"
+# Begin Special Build Tool
+OutDir=.\Debug
+ProjDir=.
+TargetName=yazxx
+SOURCE=$(InputPath)
+PostBuild_Cmds=copy $(OutDir)\$(TargetName).dll $(ProjDir)\..\..\..\bin
+# End Special Build Tool
+
+!ENDIF
+
+# Begin Target
+
+# Name "yazxx - Win32 Release"
+# Name "yazxx - Win32 Debug"
+# Begin Source File
+
+SOURCE="..\..\src\yaz-ir-assoc.cpp"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\yaz-ir-assoc.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\yaz-pdu-assoc.cpp"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\yaz-pdu-assoc.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\yaz-pdu-observer.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\yaz-proxy.cpp"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\yaz-proxy.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\src\yaz-socket-manager.cpp"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\yaz-socket-manager.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\yaz-socket-observer.h"
+# End Source File
+# End Target
+# End Project