00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "JackMachServerNotifyChannel.h"
00021 #include "JackRPCEngineUser.c"
00022 #include "JackNotification.h"
00023 #include "JackTools.h"
00024 #include "JackConstants.h"
00025 #include "JackError.h"
00026 #include <stdio.h>
00027
00028 namespace Jack
00029 {
00030
00031 int JackMachServerNotifyChannel::Open(const char* server_name)
00032 {
00033 jack_log("JackMachServerChannel::Open");
00034 char jack_server_entry_name[512];
00035 snprintf(jack_server_entry_name, sizeof(jack_server_entry_name), "%s.%d_%s", jack_server_entry, JackTools::GetUID(), server_name);
00036
00037 if (!fClientPort.ConnectPort(jack_server_entry_name)) {
00038 jack_error("Cannot connect to server port");
00039 return -1;
00040 } else {
00041 return 0;
00042 }
00043 }
00044
00045 void JackMachServerNotifyChannel::Close()
00046 {}
00047
00048 void JackMachServerNotifyChannel::Notify(int refnum, int notify, int value)
00049 {
00050 kern_return_t res = rpc_jack_client_rt_notify(fClientPort.GetPort(), refnum, notify, value, 0);
00051 if (res != KERN_SUCCESS) {
00052 jack_error("Could not write request ref = %d notify = %d err = %s", refnum, notify, mach_error_string(res));
00053 }
00054 }
00055
00056 void JackMachServerNotifyChannel::NotifyQuit()
00057 {
00058 #ifdef MAC_OS_X_VERSION_10_5
00059
00060 #else
00061 kern_return_t res = rpc_jack_client_rt_notify(fClientPort.GetPort(), -1, kQUIT, 0, 0);
00062 if (res != KERN_SUCCESS) {
00063 jack_error("Could not write request ref = %d notify = %d err = %s", -1, kQUIT, mach_error_string(res));
00064 }
00065 #endif
00066 }
00067
00068 }
00069
00070