equal
deleted
inserted
replaced
31 virtual Loader * Clone (void) |
31 virtual Loader * Clone (void) |
32 { |
32 { |
33 return 0; /* XXX */ |
33 return 0; /* XXX */ |
34 } |
34 } |
35 virtual void UnloadAll (void); |
35 virtual void UnloadAll (void); |
36 virtual void * Load (std::string filename, int flag); |
36 virtual void * Load (std::string filename, int flag, bool failsafe); |
37 virtual void Unload (void *module); |
37 virtual void Unload (void *module); |
38 virtual void * Lookup (void *module, std::string symbol); |
38 virtual void * Lookup (void *module, std::string symbol); |
39 private: |
39 private: |
40 Lmid_t m_lmid; |
40 Lmid_t m_lmid; |
41 std::list<void *> m_loaded; |
41 std::list<void *> m_loaded; |
85 { |
85 { |
86 ::dlclose (*i); |
86 ::dlclose (*i); |
87 } |
87 } |
88 } |
88 } |
89 void * |
89 void * |
90 DlmLoader::Load (std::string filename, int flag) |
90 DlmLoader::Load (std::string filename, int flag, bool failsafe) |
91 { |
91 { |
92 NS_LOG_FUNCTION (this << filename << flag); |
92 NS_LOG_FUNCTION (this << filename << flag); |
93 void *module = dlmopen (m_lmid, filename.c_str (), flag); |
93 void *module = dlmopen (m_lmid, (filename != "") ? filename.c_str () : NULL, flag); |
94 if (!module) |
94 if (!module) |
95 { |
95 { |
96 NS_LOG_UNCOND ("*** unable to open non-shared object file=" << filename << " ***"); |
96 NS_LOG_UNCOND ("*** unable to open non-shared object file=" << filename << " ***"); |
97 NS_LOG_UNCOND ("dlerror() = " << dlerror ()); |
97 NS_LOG_UNCOND ("dlerror() = " << dlerror ()); |
98 NS_ASSERT_MSG (false, "make it sure that DCE binrary file " << filename |
98 NS_ASSERT_MSG (false, "make it sure that DCE binrary file " << filename |