imgtools/imglib/symbolutil/symbolprocessunit.h
changeset 714 e5a58c351011
parent 695 46ca13b54f56
equal deleted inserted replaced
713:7b7f0409fc00 714:e5a58c351011
    51 class SymbolProcessUnit
    51 class SymbolProcessUnit
    52 {
    52 {
    53 public:
    53 public:
    54 	virtual void ProcessExecutableFile(const string& aFile) = 0;
    54 	virtual void ProcessExecutableFile(const string& aFile) = 0;
    55 	virtual void ProcessDataFile(const string& afile) = 0;
    55 	virtual void ProcessDataFile(const string& afile) = 0;
    56 	virtual void FlushStdOut(ostream& aOut) = 0;
    56 	virtual void FlushStdOut(stringlist& aList);
    57 	virtual void FlushSymbolContent(ostream &aOut) = 0;
    57 	virtual void FlushSymbolContent(ostream &aOut) = 0;
    58 	virtual void ResetContentLog() = 0;
    58 	virtual void ResetContentLog() = 0;
    59 	virtual ~SymbolProcessUnit() {}
    59 	virtual ~SymbolProcessUnit() {}
    60 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
    60 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
    61 	int GetSizeFromBinFile( const string& fileName );
    61 	int GetSizeFromBinFile( const string& fileName );
       
    62 protected:
       
    63 	stringlist iStdoutLog;
    62 };
    64 };
    63 
    65 
    64 class CommenRomSymbolProcessUnit : public SymbolProcessUnit
    66 class CommenRomSymbolProcessUnit : public SymbolProcessUnit
    65 {
    67 {
    66 public:
    68 public:
    67 	virtual void ProcessExecutableFile(const string& aFile);
    69 	virtual void ProcessExecutableFile(const string& aFile);
    68 	virtual void ProcessDataFile(const string& afile);
    70 	virtual void ProcessDataFile(const string& afile);
    69 	virtual void FlushStdOut(ostream& aOut);
       
    70 	virtual void FlushSymbolContent(ostream &aOut);
    71 	virtual void FlushSymbolContent(ostream &aOut);
    71 	virtual void ResetContentLog();
    72 	virtual void ResetContentLog();
    72 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
    73 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
    73 private:
    74 private:
    74 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
    75 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
    75 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
    76 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
    76 	void ProcessX86File( const string& fileName, ifstream& aMap );
    77 	void ProcessX86File( const string& fileName, ifstream& aMap );
    77 private:
    78 private:
    78 	stringlist iStdoutLog;
       
    79 	stringlist iSymbolContentLog;
    79 	stringlist iSymbolContentLog;
    80 	TPlacedEntry iPlacedEntry;
    80 	TPlacedEntry iPlacedEntry;
    81 };
    81 };
    82 
    82 
    83 class CommenRofsSymbolProcessUnit : public SymbolProcessUnit
    83 class CommenRofsSymbolProcessUnit : public SymbolProcessUnit
    84 {
    84 {
    85 public:
    85 public:
    86 	virtual void ProcessExecutableFile(const string& aFile);
    86 	virtual void ProcessExecutableFile(const string& aFile);
    87 	virtual void ProcessDataFile(const string& afile);
    87 	virtual void ProcessDataFile(const string& afile);
    88 	virtual void FlushStdOut(ostream& aOut);
       
    89 	virtual void FlushSymbolContent(ostream &aOut);
    88 	virtual void FlushSymbolContent(ostream &aOut);
    90 	virtual void ResetContentLog();
    89 	virtual void ResetContentLog();
    91 private:
    90 private:
    92 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
    91 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
    93 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
    92 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
    94 private:
    93 private:
    95 	stringlist iStdoutLog;
       
    96 	stringlist iSymbolContentLog;
    94 	stringlist iSymbolContentLog;
    97 };
    95 };
    98 
    96 
    99 class SymbolGenerator;
    97 class SymbolGenerator;
   100 
    98 
   103 public:
   101 public:
   104 	BsymRofsSymbolProcessUnit(SymbolGenerator* aSymbolGeneratorPtr): iSymbolGeneratorPtr(aSymbolGeneratorPtr){}
   102 	BsymRofsSymbolProcessUnit(SymbolGenerator* aSymbolGeneratorPtr): iSymbolGeneratorPtr(aSymbolGeneratorPtr){}
   105 	BsymRofsSymbolProcessUnit(){}
   103 	BsymRofsSymbolProcessUnit(){}
   106 	virtual void ProcessExecutableFile(const string& aFile);
   104 	virtual void ProcessExecutableFile(const string& aFile);
   107 	virtual void ProcessDataFile(const string& afile);
   105 	virtual void ProcessDataFile(const string& afile);
   108 	virtual void FlushStdOut(ostream& aOut);
       
   109 	virtual void FlushSymbolContent(ostream &aOut);
   106 	virtual void FlushSymbolContent(ostream &aOut);
   110 	virtual void ResetContentLog();
   107 	virtual void ResetContentLog();
   111 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
   108 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
   112 private:
   109 private:
   113 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
   110 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
   114 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
   111 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
   115 private:
   112 private:
   116 	stringlist iStdoutLog;
       
   117 	MapFileInfo iMapFileInfo;
   113 	MapFileInfo iMapFileInfo;
   118 	SymbolGenerator* iSymbolGeneratorPtr;
   114 	SymbolGenerator* iSymbolGeneratorPtr;
   119 };
   115 };
       
   116 
       
   117 class BsymRomSymbolProcessUnit : public SymbolProcessUnit
       
   118 {
       
   119 public:
       
   120 	BsymRomSymbolProcessUnit(SymbolGenerator* aSymbolGeneratorPtr): iSymbolGeneratorPtr(aSymbolGeneratorPtr){}
       
   121 	virtual void ProcessExecutableFile(const string& aFile);
       
   122 	virtual void ProcessDataFile(const string& afile);
       
   123 	virtual void FlushSymbolContent(ostream &aOut);
       
   124 	virtual void ResetContentLog();
       
   125 	virtual void ProcessEntry(const TPlacedEntry& aEntry);
       
   126 private:
       
   127 	void ProcessArmv5File( const string& fileName, ifstream& aMap );
       
   128 	void ProcessGcceOrArm4File( const string& fileName, ifstream& aMap );
       
   129 	void ProcessX86File( const string& fileName, ifstream& aMap );
       
   130 private:
       
   131 	MapFileInfo iMapFileInfo;
       
   132 	SymbolGenerator* iSymbolGeneratorPtr;
       
   133 	TPlacedEntry iPlacedEntry;
       
   134 };
       
   135 
   120 #endif
   136 #endif