Browse Source

Update Windows code.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4687 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.9.5
sletz 13 years ago
parent
commit
cb41ec6023
2 changed files with 36 additions and 4 deletions
  1. +24
    -0
      windows/JackWinNamedPipe.cpp
  2. +12
    -4
      windows/JackWinNamedPipe.h

+ 24
- 0
windows/JackWinNamedPipe.cpp View File

@@ -52,6 +52,30 @@ int JackWinNamedPipe::Write(void* data, int len)
}
}

int JackWinNamedPipeClient::Read(void* data, int len)
{
DWORD read;
BOOL res = ReadFile(fNamedPipe, data, len, &read, NULL);
if (res && read == (DWORD)len) {
return 0;
} else {
jack_error("Cannot read named pipe name = %s err = %ld", fName, GetLastError());
return -1;
}
}

int JackWinNamedPipeClient::Write(void* data, int len)
{
DWORD written;
BOOL res = WriteFile(fNamedPipe, data, len, &written, NULL);
if (res && written == (DWORD)len) {
return 0;
} else {
jack_error("Cannot write named pipe name = %s err = %ld", fName, GetLastError());
return -1;
}
}

/*
See :
http://answers.google.com/answers/threadview?id=430173


+ 12
- 4
windows/JackWinNamedPipe.h View File

@@ -28,7 +28,7 @@
namespace Jack
{

class JackWinNamedPipe : public JackChannelTransactionInterface
class JackWinNamedPipe : public detail::JackChannelTransactionInterface
{

protected:
@@ -53,20 +53,24 @@ class JackWinNamedPipe : public JackChannelTransactionInterface
\brief Client named pipe.
*/

class JackWinNamedPipeClient : public JackWinNamedPipe, public JackRequestInterface
class JackWinNamedPipeClient : public detail::JackClientRequestInterface
{

private:

int ConnectAux();

HANDLE fNamedPipe;
char fName[256];

public:

JackWinNamedPipeClient(): JackWinNamedPipe()
JackWinNamedPipeClient()
{}
JackWinNamedPipeClient(HANDLE pipe, const char* name): JackWinNamedPipe(pipe)
JackWinNamedPipeClient(HANDLE pipe, const char* name)
{
strcpy(fName, name);
fNamedPipe = pipe;
}

virtual ~JackWinNamedPipeClient()
@@ -75,6 +79,10 @@ class JackWinNamedPipeClient : public JackWinNamedPipe, public JackRequestInterf
virtual int Connect(const char* dir, int which);
virtual int Connect(const char* dir, const char* name, int which);
virtual int Close();

int Read(void* data, int len);
int Write(void* data, int len);

virtual void SetReadTimeOut(long sec);
virtual void SetWriteTimeOut(long sec);
};


Loading…
Cancel
Save