Pol  Revision:cb584c9
scrdef.h
Go to the documentation of this file.
1 
7 #ifndef SCRDEF_H
8 #define SCRDEF_H
9 
10 #include <stddef.h>
11 #include <string>
12 
13 #include "../clib/boostutils.h"
14 
15 namespace Pol
16 {
17 namespace Plib
18 {
19 class Package;
20 }
21 namespace Core
22 {
23 class ScriptDef
24 {
25 public:
26  ScriptDef() : name_( "" ), pkg_( nullptr ) {}
27  ScriptDef( const std::string& name, const Plib::Package* pkg, const char* mainpfx );
28  ScriptDef( const std::string& name, const Plib::Package* pkg );
29  // ScriptDef( const ScriptDef& ); default copy ctor is okay
30  // ScriptDef& operator=( const ScriptDef& ); default operator= is okay
31 
32  bool operator==( const ScriptDef& other ) const;
33  bool operator!=( const ScriptDef& other ) const;
34  void config( const std::string& name, const Plib::Package* pkg, const char* mainpfx,
35  bool warn_if_not_found = true );
36  void config( const std::string& name, const Plib::Package* pkg );
37  bool config_nodie( const std::string& name, const Plib::Package* pkg, const char* mainpfx );
38  void quickconfig( const Plib::Package* pkg, const std::string& name_ecl );
39  void quickconfig( const std::string& name_ecl );
40 
41  bool empty() const { return name_.get().empty(); }
42  const char* c_str() const { return name_.get().c_str(); }
43  void clear();
44 
45  const std::string& name() const { return name_; }
46  const Plib::Package* pkg() const { return pkg_; }
47  bool exists() const;
48 
49  std::string relativename( const Plib::Package* pkg = nullptr ) const;
50  size_t estimatedSize() const;
51 
52 private:
56 
57 private: // not implemented
58 };
59 }
60 }
61 
62 #endif
bool empty() const
Definition: scrdef.h:41
const Plib::Package * pkg() const
Definition: scrdef.h:46
bool operator==(T *ptr, const ref_ptr< T > &rptr)
Definition: refptr.h:311
const std::string & name() const
Definition: scrdef.h:45
boost::flyweight< std::string, boost::flyweights::tag< script_name_tag >, FLYWEIGHT_HASH_FACTORY > script_name_flystring
Definition: boostutils.h:148
const Plib::Package * pkg_
Definition: scrdef.h:55
boost_utils::script_name_flystring name_
Definition: scrdef.h:54
const char * c_str() const
Definition: scrdef.h:42
boost_utils::script_name_flystring localname_
Definition: scrdef.h:53
std::string name
Definition: osmod.cpp:943
bool operator!=(T *ptr, const ref_ptr< T > &rptr)
Definition: refptr.h:317
Definition: berror.cpp:12