00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "JackWinNamedPipeServerNotifyChannel.h"
00021 #include "JackError.h"
00022 #include "JackRequest.h"
00023 #include "JackConstants.h"
00024 #include "JackNotification.h"
00025
00026 namespace Jack
00027 {
00028
00029 int JackWinNamedPipeServerNotifyChannel::Open(const char* server_name)
00030 {
00031 if (fRequestPipe.Connect(jack_server_dir, server_name, 0) < 0) {
00032 jack_error("Cannot connect to server pipe");
00033 return -1;
00034 } else {
00035 return 0;
00036 }
00037 }
00038
00039 void JackWinNamedPipeServerNotifyChannel::Close()
00040 {
00041 fRequestPipe.Close();
00042 }
00043
00044
00045
00046
00047
00048
00049
00050 void JackWinNamedPipeServerNotifyChannel::Notify(int refnum, int notify, int value)
00051 {
00052 JackClientNotificationRequest req(refnum, notify, value);
00053 if (req.Write(&fRequestPipe) < 0) {
00054 jack_error("Could not write request ref = %d notify = %d", refnum, notify);
00055 }
00056 }
00057
00058 void JackWinNamedPipeServerNotifyChannel::NotifyQuit()
00059 {
00060 JackClientNotificationRequest req(-1, kQUIT, 0);
00061 if (req.Write(&fRequestPipe) < 0) {
00062 jack_error("Could not write request ref = %d notify = %d", -1, kQUIT);
00063 }
00064 }
00065
00066 }
00067
00068