gdSnarfCommon.h

Go to the documentation of this file.
00001 #ifndef X_GDSNARFCOMMON_H
00002 #define X_GDSNARFCOMMON_H
00003 
00004 #include "garg.h"
00005 #include "gfile.h"
00006 #include "gnet.h"
00007 #include "gtime.h"
00008 #include "gcalendar.h"
00009 #include "gweb.h"
00010 #include "ghttp.h"
00011 #include "gstringext.h"
00012 
00013 #include "gHtmlOpt.h"
00014 
00015 ////////////////////////////////////////////////////////////
00016 class gdOptUnweb : public gList {
00017 public:
00018     gdOptUnweb ()
00019         : fDump( stdout ),
00020           fTemp( nil ) {
00021     }
00022     ~gdOptUnweb () {
00023         delete fTemp;
00024         if ( DumpStreamWasOpened() ) fclose( fDump );
00025     }
00026 
00027     // Public members
00028     gHtmlOpt htmlOpt;
00029 
00030     FILE* fDump;
00031     gFileTemp* fTemp;
00032 
00033     // Get methods
00034     virtual bool DumpStreamWasOpened () {
00035         return fDump!=nil && fDump!=stdout && fDump!=stderr;
00036     }
00037 
00038     virtual FILE* DumpStream () ;
00039 
00040 private:
00041     // Operators,empty
00042     gdOptUnweb (gdOptUnweb& ) ; //empty
00043     gdOptUnweb& operator= (gdOptUnweb& ) ; //empty
00044 };
00045 ////////////////////////////////////////////////////////////
00046 struct sOptProxy {
00047     sOptProxy ()
00048         : port( 0 ) {
00049     }
00050     gString sHost;
00051     t_gPort port;
00052     // Get methods
00053     bool IsValid () {
00054         return sHost.IsEmpty()==false && port>0;
00055     }
00056     // Set methods
00057     void Reset () {
00058         sHost.SetEmpty();
00059         port = 0;
00060     }
00061 };
00062 ////////////////////////////////////////////////////////////
00063 struct sOptSnarf {
00064     sOptSnarf ()
00065         : isVerbose( false ),
00066           isVeryVerbose( false ),
00067           doDosMode( false ),
00068           doView( false ),
00069           doUnweb( false ),
00070           doShowStats( false ),
00071           doError4NotFound( false ),
00072           myPort( 80 ),
00073           myURI( gURI::e_http ),
00074           myProto( (char*)"1.1" ),  // Default, e.g. HTTP/1.1
00075           unwebOpt( nil ),
00076           fOut( stdout ),
00077           readOctets( 0 ),
00078           nStat( -1 ),
00079           resultURI( gURI::e_http ) {
00080     }
00081     ~sOptSnarf () ;
00082 
00083     bool isVerbose, isVeryVerbose;
00084     bool doDosMode;
00085     bool doView;
00086     bool doUnweb;
00087     bool doShowStats;
00088     bool doError4NotFound;
00089     t_gPort myPort;
00090     // ...-opt-ins
00091     gURI myURI;
00092     gString myProto;
00093     gString myProxy;
00094     gString sOutFileName;
00095     gString sFileDumpReply;
00096     // Specific members
00097     gdOptUnweb* unwebOpt;
00098     FILE* fOut;
00099     t_uint32 readOctets;
00100     short nStat;
00101     gUInt vStat[10];
00102     // .
00103     gURI resultURI;
00104 
00105     // Get methods
00106     bool HasSpecURI () ;
00107 
00108     bool HasProxy () {
00109         return myProxy.IsEmpty()==false;
00110     }
00111     t_uint32 GetInOctets () {
00112         return readOctets;
00113     }
00114     gString& GetProxy () {
00115          return myProxy;
00116     }
00117 
00118     char* NewLine () {
00119         return (char*)(doDosMode ? "\r\n" : "\n");
00120     }
00121 
00122     FILE* OutStream () ;
00123 
00124     bool OutStreamWasOpened () {
00125         return fOut!=nil && fOut!=stdout && fOut!=stderr;
00126     }
00127 
00128     gdOptUnweb& UnwebOpt () ;
00129 
00130     // Specific methods
00131     ///int ProxyValidate (gString& sProxyName, t_uint16& rProxyPort) ;
00132     // .
00133 
00134     // Help methods
00135     int ShowStats (FILE* fStat, gTimerTic& tic, t_gTicElapsed cpuTics) ;
00136 
00137     // Go methods
00138     int GoCmdHttp (gURI& aURI) ;
00139 };
00140 ////////////////////////////////////////////////////////////
00141 #endif //X_GDSNARFCOMMON_H
00142 

Generated on Sat Aug 18 02:40:52 2007 for xpfweb_v2x lib by  doxygen 1.4.2