/* PIP - Platform Independent Primitives Introspection module Ivan Pelipenko peri4ko@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef PIINTROSPECTION_SERVER_H #define PIINTROSPECTION_SERVER_H #include "pipeer.h" #if defined(PIP_INTROSPECTION) && !defined(PIP_FORCE_NO_PIINTROSPECTION) class PIIntrospectionServer; class PISystemMonitor; # define PIINTROSPECTION_SERVER (PIIntrospectionServer::instance()) # define PIINTROSPECTION_START PIINTROSPECTION_SERVER->start(); class PIP_EXPORT PIIntrospectionServer: public PIPeer { PIOBJECT_SUBCLASS(PIIntrospectionServer, PIPeer) public: static PIIntrospectionServer * instance() {static PIIntrospectionServer ret; return &ret;} void start(); private: PIIntrospectionServer(); ~PIIntrospectionServer(); NO_COPY_CLASS(PIIntrospectionServer) PIString genName(); virtual void dataReceived(const PIString & from, const PIByteArray & data); EVENT_HANDLER(void, sysmonDeleted); PRIVATE_DECLARATION PITimer itimer; PISystemMonitor * sysmon; PIMutex sysmon_mutex; }; #else # define PIINTROSPECTION_START #endif #endif // PIINTROSPECTION_SERVER_H