Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

ArServerSimpleOpener.h

Go to the documentation of this file.
00001 /*
00002 MobileRobots Advanced Robotics Interface for Applications (ARIA)
00003 Copyright (C) 2004, 2005 ActivMedia Robotics LLC
00004 Copyright (C) 2006, 2007 MobileRobots Inc.
00005 
00006      This program is free software; you can redistribute it and/or modify
00007      it under the terms of the GNU General Public License as published by
00008      the Free Software Foundation; either version 2 of the License, or
00009      (at your option) any later version.
00010 
00011      This program is distributed in the hope that it will be useful,
00012      but WITHOUT ANY WARRANTY; without even the implied warranty of
00013      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014      GNU General Public License for more details.
00015 
00016      You should have received a copy of the GNU General Public License
00017      along with this program; if not, write to the Free Software
00018      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 
00020 If you wish to redistribute ARIA under different terms, contact 
00021 MobileRobots for information about a commercial version of ARIA at 
00022 robots@mobilerobots.com or 
00023 MobileRobots Inc, 19 Columbia Drive, Amherst, NH 03031; 800-639-9481
00024 */
00025 
00026 #ifndef ARSERVERSIMPLEOPENER_H
00027 #define ARSERVERSIMPLEOPENER_H
00028 
00029 #include "Aria.h"
00030 
00031 class ArServerBase;
00032 
00053 class ArServerSimpleOpener
00054 {
00055 public:
00057   AREXPORT ArServerSimpleOpener(ArArgumentParser *parser, 
00058                                 const char *prefix = "");
00060   AREXPORT ~ArServerSimpleOpener();
00062   AREXPORT bool open(ArServerBase *server, const char *baseDirectory = "",
00063                      int secondsToTryFor = 240);
00065   AREXPORT bool parseArgs(void);
00067   AREXPORT bool parseArgs(ArArgumentParser *parser);
00069   AREXPORT void logOptions(void) const;
00071   AREXPORT bool checkAndLog(void) const;
00073   bool wasUserFileBad(void) { return myBadUserFile; }
00075   bool didOpenFail(void) { return myOpenFailed; }
00079   int getPort() { return myServerPort; } 
00080 
00082   AREXPORT bool parseFile(const char *fileName);
00083 protected:
00084   AREXPORT bool parseArgsWithOutPrefix(ArArgumentParser *parser);
00085   AREXPORT bool parseArgsWithPrefix(ArArgumentParser *parser);
00086   AREXPORT void logOptionsWithOutPrefix(void) const;
00087   AREXPORT void logOptionsWithPrefix(void) const;
00088 
00089   bool fileServerKeyCallback(ArArgumentBuilder *arg);
00090   
00091   void reset(void);
00092   const char *myUserFile;
00093   //const char *myServerKey;
00094   std::string myServerKey;
00095   int myServerPort;
00096   const char *myOpenOnIP;
00097   ArServerBase *myServer;
00098   bool myLogUserInfo;
00099   bool myLogCommandGroups;
00100   bool myBadUserFile;
00101   bool myOpenFailed;
00102   // our parser
00103   ArArgumentParser *myParser;
00104   bool myOwnParser;
00105   std::string myPrefix;
00106 
00107   // file parser for the server key file
00108   ArFileParser myFileParser;
00109   ArRetFunctorC<bool, ArServerSimpleOpener> myParseArgsCB;
00110   ArConstFunctorC<ArServerSimpleOpener> myLogOptionsCB;
00111   ArRetFunctor1C<bool, ArServerSimpleOpener, 
00112       ArArgumentBuilder *> myFileServerKeyCB;
00113 };
00114 
00115 #endif // ARSERVERSIMPLEOPENER_H

Generated on Tue Feb 20 10:51:50 2007 for ArNetworking by  doxygen 1.4.0