• Main Page
  • Classes
  • Files
  • File List

CDaemonApp.h

00001 /*
00002  * synergy -- mouse and keyboard sharing utility
00003  * Copyright (C) 2012 Bolton Software Ltd.
00004  * Copyright (C) 2012 Nick Bolton
00005  * 
00006  * This package is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License
00008  * found in the file COPYING that should have accompanied this file.
00009  * 
00010  * This package is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00017  */
00018  
00019 #pragma once
00020 
00021 #include "CArch.h"
00022 #include "CIpcServer.h"
00023 
00024 #if SYSAPI_WIN32
00025 #include "CMSWindowsRelauncher.h"
00026 #endif
00027 
00028 #include <string>
00029 
00030 class CEvent;
00031 class CIpcLogOutputter;
00032 
00033 class CDaemonApp {
00034 
00035 public:
00036     CDaemonApp();
00037     virtual ~CDaemonApp();
00038     int run(int argc, char** argv);
00039     void mainLoop(bool logToFile);
00040 
00041 private:
00042     void daemonize();
00043     void foregroundError(const char* message);
00044     std::string logPath();
00045     void                handleIpcMessage(const CEvent&, void*);
00046 
00047 public:
00048     static CDaemonApp* s_instance;
00049 
00050 #if SYSAPI_WIN32
00051     CMSWindowsRelauncher*
00052                         m_relauncher;
00053 #endif
00054 
00055 private:
00056     CIpcServer*         m_ipcServer;
00057     CIpcLogOutputter*   m_ipcLogOutputter;
00058 };
00059 
00060 #define LOG_FILENAME "synergyd.log"

Generated on Wed Jun 19 2013 00:00:05 for Synergy by  doxygen 1.7.1