00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "JackSocketServerNotifyChannel.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 JackSocketServerNotifyChannel::Open(const char* server_name)
00030 {
00031 if (fRequestSocket.Connect(jack_server_dir, server_name, 0) < 0) {
00032 jack_error("Cannot connect to server socket");
00033 return -1;
00034 } else {
00035 fRequestSocket.SetNonBlocking(true);
00036 return 0;
00037 }
00038 }
00039
00040 void JackSocketServerNotifyChannel::Close()
00041 {
00042 fRequestSocket.Close();
00043 }
00044
00045
00046
00047
00048
00049
00050
00051 void JackSocketServerNotifyChannel::Notify(int refnum, int notify, int value)
00052 {
00053 JackClientNotificationRequest req(refnum, notify, value);
00054 if (req.Write(&fRequestSocket) < 0) {
00055 jack_error("Could not write request ref = %d notify = %d", refnum, notify);
00056 }
00057 }
00058
00059 void JackSocketServerNotifyChannel::NotifyQuit()
00060 {
00061 JackClientNotificationRequest req(-1, kQUIT, 0);
00062 if (req.Write(&fRequestSocket) < 0) {
00063 jack_error("Could not write request ref = %d notify = %d", -1, kQUIT);
00064 }
00065 }
00066
00067
00068 }
00069
00070