edelib
2.0.0
|
00001 /* 00002 * $Id: Sipc.h 2839 2009-09-28 11:36:20Z karijes $ 00003 * 00004 * A very simple IPC 00005 * Copyright (c) 2008 edelib authors 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public License 00018 * along with this library. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef __EDELIB_SIPC_H__ 00022 #define __EDELIB_SIPC_H__ 00023 00024 #include "edelib-global.h" 00025 00026 EDELIB_NS_BEGIN 00027 00028 #ifndef SKIP_DOCS 00029 class SipcServerPrivate; 00030 class SipcClientPrivate; 00031 #endif 00032 00033 00037 typedef void (*SipcCallback)(const char*, void*); 00038 00083 class EDELIB_API SipcServer { 00084 private: 00085 SipcServerPrivate* priv; 00086 E_DISABLE_CLASS_COPY(SipcServer) 00087 public: 00091 SipcServer(); 00092 00096 ~SipcServer(); 00097 00105 bool request_name(const char* prefix); 00106 00113 void callback(SipcCallback cb, void* data); 00114 }; 00115 00133 class EDELIB_API SipcClient { 00134 private: 00135 SipcClientPrivate* priv; 00136 E_DISABLE_CLASS_COPY(SipcClient) 00137 public: 00141 SipcClient(); 00142 00146 ~SipcClient(); 00147 00154 bool connect(const char* prefix); 00155 00161 void send(const char* msg); 00162 }; 00163 00164 EDELIB_NS_END 00165 #endif