00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _SOCKETS_Parse_H
00033 #define _SOCKETS_Parse_H
00034
00035 #include "sockets-config.h"
00036 #ifdef _WIN32
00037 #pragma warning(disable:4514)
00038 #endif
00039
00040 #include <string>
00041
00042 #ifdef SOCKETS_NAMESPACE
00043 namespace SOCKETS_NAMESPACE {
00044 #endif
00045
00046
00047
00048
00049
00052 class Parse
00053 {
00054 public:
00055 Parse();
00056 Parse(const std::string&);
00057 Parse(const std::string&,const std::string&);
00058 Parse(const std::string&,const std::string&,short);
00059 ~Parse();
00060 short issplit(const char);
00061 void getsplit();
00062 void getsplit(std::string&);
00063 std::string getword();
00064 void getword(std::string&);
00065 void getword(std::string&,std::string&,int);
00066 std::string getrest();
00067 void getrest(std::string&);
00068 long getvalue();
00069 void setbreak(const char);
00070 int getwordlen();
00071 int getrestlen();
00072 void enablebreak(const char c) {
00073 pa_enable = c;
00074 }
00075 void disablebreak(const char c) {
00076 pa_disable = c;
00077 }
00078 void getline();
00079 void getline(std::string&);
00080 size_t getptr() { return pa_the_ptr; }
00081 void EnableQuote(bool b) { pa_quote = b; }
00082
00083 private:
00084 std::string pa_the_str;
00085 std::string pa_splits;
00086 std::string pa_ord;
00087 size_t pa_the_ptr;
00088 char pa_breakchar;
00089 char pa_enable;
00090 char pa_disable;
00091 short pa_nospace;
00092 bool pa_quote;
00093 };
00094
00095
00096 #ifdef SOCKETS_NAMESPACE
00097 }
00098 #endif
00099
00100 #endif // _SOCKETS_Parse_H