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 #include "JackServerGlobals.h"
00026
00027 namespace Jack
00028 {
00029
00030 int JackSocketServerNotifyChannel::Open(const char* server_name)
00031 {
00032 if (fRequestSocket.Connect(jack_server_dir, server_name, 0) < 0) {
00033 jack_error("Cannot connect to server socket");
00034 return -1;
00035 } else {
00036 fRequestSocket.SetNonBlocking(true);
00037 return 0;
00038 }
00039 }
00040
00041 void JackSocketServerNotifyChannel::Close()
00042 {
00043 fRequestSocket.Close();
00044 }
00045
00046
00047
00048
00049
00050
00051
00052 void JackSocketServerNotifyChannel::Notify(int refnum, int notify, int value)
00053 {
00054 JackClientNotificationRequest req(refnum, notify, value);
00055 if (req.Write(&fRequestSocket) < 0) {
00056 jack_error("Could not write notification ref = %d notify = %d", refnum, notify);
00057 }
00058 }
00059
00060 void JackSocketServerNotifyChannel::NotifyQuit()
00061 {
00062 Notify(-1, kQUIT, 0);
00063 }
00064
00065 }
00066
00067