00001
00010 /*00011 * Copyright 2008. Los Alamos National Security, LLC. This material00012 * was produced under U.S. Government contract DE-AC52-06NA25396 for00013 * Los Alamos National Laboratory (LANL), which is operated by Los00014 * Alamos National Security, LLC, for the Department of Energy. The00015 * U.S. Government has rights to use, reproduce, and distribute this00016 * software. NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY,00017 * LLC, MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL00018 * LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified to00019 * produce derivative works, such modified software should be clearly00020 * marked, so as not to confuse it with the version available from LANL.00021 *00022 * Additionally, this program is free software; you can redistribute00023 * it and/or modify it under the terms of the GNU General Public00024 * License as published by the Free Software Foundation; version 2 of00025 * the License. Accordingly, this program is distributed in the hope00026 * it will be useful, but WITHOUT ANY WARRANTY; without even the00027 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR00028 * PURPOSE. See the GNU General Public License for more details.00029 *00030 * You should have received a copy of the GNU General Public License00031 * along with this program; if not, write to the Free Software00032 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00033 */00034
00035 #ifndef _SENSE_SERVER_H_00036 #define _SENSE_SERVER_H_00037
00038 #include "sensingC.h"00039 #include "discovery.h"00040 #include "tracking.h"00041
00042
00043 namespace sensix {
00044 class SenseClient;
00045
00046 class SenseServer : Request {
00047 protected:
00048 CORBA::ORB_var orb;
00049 PortableServer::POA_var poa;
00050sensix::discovery::DiscoveryService *discover;
00051 TaskTrackingtrack;
00052sensix::SenseClient *local_client;
00053boolown_discover;
00054CapabilityTrackerlocal_capabilities;
00055
00056
00057 public:
00058 SenseServer(intid, int level, int argc, char *argv[]);
00059 virtual~SenseServer();
00060
00061voidrun() { orb->run(); } // blocks00062 voidshutdown();
00063
00069 voidaddCapability(uint8_t cap, Capability_ptr obj);
00070
00077 voidapply(Functor_ptr funct, Response_ptr callback);
00078
00083 voidcancel(Functor_ptr funct);
00084
00089 voiddataready(Functor_ptr f);
00090 };
00091
00092 }
00093
00094
00095 #endif // _SENSE_SERVER_H_