CCAFFEINE  0.8.8
CmdContextCCA.h
00001 #ifndef CmdContextCCA_h_seen
00002 #define CmdContextCCA_h_seen
00003 
00004 
00005 // #include "util/IO.h"
00006 // #include "jc++/jc++.h"
00007 // #include "jc++/util/jc++util.h"
00008 
00009 // #include "cmd/CmdContext.h"
00010 // #include "cmd/CmdAction.h"
00011 // #include "dc/user_iface/DefaultBuilderModel.h"
00012 // #include "dc/user_iface/CmdLineBuilderView.h"
00013 
00018 #define PATHSEP_STRING "/"
00019 
00021 #define CCAFE_RC_NAME ".ccaferc"
00022 
00029 class CmdContextCCA : public virtual CmdContext {
00030 
00031  private:
00032 
00033   char * tmpString;
00034 
00035 public:
00036 
00037   // Specific interpreters define different globals like so.
00039   DefaultBuilderModel *bm;
00040 
00042   CmdLineBuilderView *bv;
00043 
00046   CmdContextCCA(CmdLineBuilderView *bv_, DefaultBuilderModel* bm) ;
00047 
00050   CmdContextCCA(FILE* out, CmdLineBuilderView *bv_, DefaultBuilderModel* bm) ;
00051 
00052   virtual ~CmdContextCCA();
00053 
00055   virtual void pn(char *s) ;
00056 
00058   virtual void p(char *s) ;
00059 
00061   virtual void pn(char s) ;
00062 
00064   virtual void p(char s) ;
00065 
00067   virtual char *prompt() ;
00068 
00071   CFREE virtual char *readLine(int &err);
00072 
00075   virtual char *getInstance(char *instanceName) ;
00076 
00079   virtual char *getClass(char *className) ;
00080 
00083   char *getRCInfo(int & linesRead, int & lineErr);
00084 
00085 protected:
00087   FILE* in;
00088 
00090   void setup();
00091 
00093   void trim_blanks(char *str);
00094 
00104   CFREE virtual char *_readLine(int &readerr);
00105 
00110   virtual int initRC();
00111 
00114   int rcLine(char *buf, int bufSize);
00115 
00118   int badMagic(FILE *file, const char *fname);
00119 
00125   bool isFakeEOF(char *line);
00126 
00128   char *rcFileName;
00129 
00131   FILE *rc;
00132 
00134   int lineCount;
00135 
00137   int lastErr;
00138 
00140   int rcUnknown;
00141 };
00142 #endif //CmdContextCCA_h_seen