KatanaNativeInterface $VERSION$

kmlFactories.h

Go to the documentation of this file.
00001 
00002 #ifndef KMLFACTORIES_H
00003 #define KMLFACTORIES_H
00004 
00005 #include "common/exception.h"
00006 
00007 #include "KNI/kmlBase.h"
00008 #include "KNI/kmlMotBase.h"
00009 #include "KNI/kmlSctBase.h"
00010 
00011 #include <string>
00012 #include <fstream>
00013 
00018 
00022 class ConfigFileStateException : public Exception {
00023 public:
00024         ConfigFileStateException() throw ():
00025                 Exception("ConfigFile is not open or other failure", -41) {}
00026 };
00027 
00031 class ConfigFileSectionNotFoundException : public Exception {
00032 public:
00033         ConfigFileSectionNotFoundException(const std::string & attribute) throw ():
00034                 Exception("Could not find section '" + attribute + "' in configfile", -42) {}
00035 };
00036 
00040 class ConfigFileSubsectionNotFoundException : public Exception {
00041 public:
00042         ConfigFileSubsectionNotFoundException(const std::string & attribute) throw ():
00043                 Exception("Could not find subsection '" + attribute + "' in configfile", -43) {}
00044 };
00045 
00049 class ConfigFileEntryNotFoundException : public Exception {
00050 public:
00051         ConfigFileEntryNotFoundException(const std::string & attribute) throw ():
00052                 Exception("Could not find entry '" + attribute + "' in configfile", -44) {}
00053 };
00054 
00058 class ConfigFileSyntaxErrorException : public Exception {
00059 public:
00060         ConfigFileSyntaxErrorException(const std::string & line) throw ():
00061                 Exception("Syntax error in this line: '" + line + "'", -45) {}
00062 };
00063 
00067 
00068 
00069 namespace KNI {
00070 
00075         class DLLDIR kmlFactory {
00076         private:
00077                 std::ifstream _configfile;
00078                 void _readEntry(char* dest, int destsz, const char* section, const char* subsection, const char* entry);
00079         public:
00080                 
00081                 kmlFactory();
00082 
00083                 bool openFile(const char* filepath) {
00084                         _configfile.open(filepath);
00085                         return _configfile.fail() ? false : true;
00086                 }
00087 #ifdef _UNICODE
00088                 bool openFile(const wchar_t* filepath) {
00089                         _configfile.open(filepath);
00090                         return _configfile.fail() ? false : true;
00091                 }
00092 #endif
00093                 
00094                 TKatGNL   getGNL();
00095                 TKatMOT   getMOT();
00096                 TKatSCT   getSCT();
00097                 TKatEFF   getEFF();
00098                 TMotDesc* getMotDesc(short count);
00099                 TSctDesc* getSctDesc(short count);
00100 
00101                 TMotCLB getMotCLB(short number);
00102                 TMotSCP getMotSCP(short number);
00103                 TMotDYL getMotDYL(short number);
00106                 int getType();
00107 
00108                 TMotInit getMotInit(short number);
00109                 
00110                 void getGripperParameters(bool& isPresent, int& openEncoders, int& closeEncoders);
00111         };
00112 
00113         
00114 
00115 }
00116 
00117 #endif