- Main Page
- Namespaces
- Classes
- Files

# artifact_impl.hpp

Go to the documentation of this file.

    00001
    00003 #ifndef ARTIFACT_IMPL_HPP_
    00004 #define ARTIFACT_IMPL_HPP_
    00005
    00006 #include <cstdlib>
    00007 #include <ctime>
    00008 #include <string>
    00009
    00010 #include "variables.hpp"
    00011
    00015 class artifact_impl
    00016 {
    00017 public:
    00019   artifact_impl();
    00021   artifact_impl(std::string const& name);
    00023   ~artifact_impl();
    00024
    00026   void add_ref();
    00029   void delete_ref();
    00030
    00032   std::string const& name()     const;
    00034   std::time_t        mod_time() const;
    00035
    00041   std::string        expand(std::string str) const;
    00042
    00044   void               build();
    00047   std::time_t        get_mod_time();
    00051   void store_variable(std::string const& name, std::string const& value);
    00052 private:
    00053   std::size_t ref_count_;
    00054   std::string name_;
    00055   std::time_t mod_time_;
    00056   variable_map* variables_;
    00057 };
    00058
    00059 #endif // ARTIFACT_IMPL_HPP_