inlib  1.2.0
Public Member Functions
inlib::cloner::clone_visitor Class Reference
Inheritance diagram for inlib::cloner::clone_visitor:
Inheritance graph
[legend]
Collaboration diagram for inlib::cloner::clone_visitor:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual bool directory (const std::string &a_dir, bool &aProcess)
virtual bool file (const std::string &aFile)
 clone_visitor (std::ostream &a_out, const std::string &a_PWD, const std::string &a_dir, const std::string &aFrom, const std::string &aTo, bool aVerbose=false)
virtual ~clone_visitor ()
bool is_success () const

Detailed Description

Definition at line 38 of file cloner.


Constructor & Destructor Documentation

inlib::cloner::clone_visitor::clone_visitor ( std::ostream &  a_out,
const std::string &  a_PWD,
const std::string &  a_dir,
const std::string &  aFrom,
const std::string &  aTo,
bool  aVerbose = false 
) [inline]

Definition at line 94 of file cloner.

  :m_out(a_out)
  ,m_PWD(a_PWD)
  ,m_dir(a_dir)
  ,m_From(aFrom)
  ,m_To(aTo)
  ,m_verbose(aVerbose)
  ,m_failure(false){
    m_FROM = m_From;
    m_TO = m_To;
    touppercase(m_FROM);
    touppercase(m_TO);
    m_pack = m_From;
    m_to = m_To;
    tolowercase(m_pack);
    tolowercase(m_to);
  }
virtual inlib::cloner::clone_visitor::~clone_visitor ( ) [inline, virtual]

Definition at line 116 of file cloner.

{}

Member Function Documentation

virtual bool inlib::cloner::clone_visitor::directory ( const std::string &  a_dir,
bool &  aProcess 
) [inline, virtual]

Implements inlib::dir::visitor.

Definition at line 40 of file cloner.

                                                                {
    aProcess = true;
    unsigned int l = m_dir.size();
    std::string to = m_To + a_dir.substr(l,a_dir.size()-l);
    replace_all(to);
    std::string p,n,s;
    path_name_suffix(to,p,n,s);
    if((n=="CVS")||(n==".svn")) {
      //m_out << "Do not create CVS directory " << inlib::sout(to) << "." 
      //      << std::endl;
      aProcess = false;
    } else {
      if(!dir::create(to)) {
        m_out << "Can't create dir " << inlib::sout(to) << "." << std::endl;
        m_failure = true;
        return false;
      } else {
        //m_out << "dir " << inlib::sout(to) << " created." << std::endl;
      }
    }
    return true;
  }
virtual bool inlib::cloner::clone_visitor::file ( const std::string &  aFile) [inline, virtual]

Implements inlib::dir::visitor.

Definition at line 62 of file cloner.

                                            {
    if(m_verbose) {
      m_out << "Lib_clone : treat " << inlib::sout(aFile) << "" << std::endl;
      //m_out << "Lib_clone :  m_dir " << inlib::sout(m_dir) << "" << std::endl;
      //m_out << "Lib_clone :  m_To " << inlib::sout(m_To) << "" << std::endl;
    }
    unsigned int l = m_dir.size();
    std::string newName = m_To + aFile.substr(l,aFile.size()-l);
    replace_all(newName);
    std::vector<std::string> text;
    if(!file::read(aFile,text)) {
      m_out << "Can't read " << inlib::sout(aFile) << std::endl;
      m_failure = true;
      return false;
    }
    FILE* file = ::fopen(newName.c_str(),"wb");
    if(!file) {
      m_out << "Can't create " << inlib::sout(newName) << std::endl;
      m_failure = true;
      return false;
    }
    unsigned int textn = text.size();
    for(unsigned int index=0;index<textn;index++) {
      std::string s = text[index];
      replace_all(s);
      replace(s,"LIB_CLONE_PWD",m_PWD);
      fprintf(file,"%s\n",s.c_str());
    }
    ::fclose(file);
    return true;
  }
bool inlib::cloner::clone_visitor::is_success ( ) const [inline]

Definition at line 122 of file cloner.

{ return !m_failure;}

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines