diff options
| author | Igor Borovkov <iborovkov@productengine.com> | 2009-12-10 19:02:32 +0200 | 
|---|---|---|
| committer | Igor Borovkov <iborovkov@productengine.com> | 2009-12-10 19:02:32 +0200 | 
| commit | 3e13bc913f3e527b1a9d4f500ad038c06cdf6525 (patch) | |
| tree | 3e93416b19e77afdd834a581206ddcad99dc8a58 /indra/llplugin | |
| parent | f11c6044562571d42c76abede6fa90db2b08493f (diff) | |
| parent | 6a59342963aaf4188d1c1b104d71c31eae027d2b (diff) | |
merge
--HG--
branch : product-engine
Diffstat (limited to 'indra/llplugin')
| -rw-r--r-- | indra/llplugin/llpluginclassmedia.cpp | 5 | ||||
| -rw-r--r-- | indra/llplugin/llpluginclassmedia.h | 2 | ||||
| -rw-r--r-- | indra/llplugin/llpluginprocesschild.cpp | 9 | ||||
| -rw-r--r-- | indra/llplugin/llpluginprocesschild.h | 2 | ||||
| -rw-r--r-- | indra/llplugin/llpluginprocessparent.cpp | 4 | ||||
| -rw-r--r-- | indra/llplugin/llpluginprocessparent.h | 4 | 
6 files changed, 19 insertions, 7 deletions
| diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 70d770ef7e..1a382643da 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -63,14 +63,15 @@ LLPluginClassMedia::~LLPluginClassMedia()  	reset();  } -bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug) +bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path)  {	  	LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL;  	LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL; +	LL_DEBUGS("Plugin") << "user_data_path: " << user_data_path << LL_ENDL;  	mPlugin = new LLPluginProcessParent(this);  	mPlugin->setSleepTime(mSleepTime); -	mPlugin->init(launcher_filename, plugin_filename, debug); +	mPlugin->init(launcher_filename, plugin_filename, debug, user_data_path);  	return true;  } diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index 6b64688718..b58067733b 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -49,7 +49,7 @@ public:  	virtual ~LLPluginClassMedia();  	// local initialization, called by the media manager when creating a source -	virtual bool init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug = false); +	virtual bool init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path);  	// undoes everything init() didm called by the media manager when destroying a source  	virtual void reset(); diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 55cf11c620..ccf6dab942 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -145,8 +145,12 @@ void LLPluginProcessChild::idle(void)  			break;  			case STATE_PLUGIN_LOADED: -				setState(STATE_PLUGIN_INITIALIZING); -				sendMessageToPlugin(LLPluginMessage("base", "init")); +				{ +					setState(STATE_PLUGIN_INITIALIZING); +					LLPluginMessage message("base", "init"); +					message.setValue("user_data_path", mUserDataPath); +					sendMessageToPlugin(message); +				}  			break;  			case STATE_PLUGIN_INITIALIZING: @@ -310,6 +314,7 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message)  			if(message_name == "load_plugin")  			{  				mPluginFile = parsed.getValue("file"); +				mUserDataPath = parsed.getValue("user_data_path");  			}  			else if(message_name == "shm_add")  			{ diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h index f5c57c3d49..1cfd9dcaf9 100644 --- a/indra/llplugin/llpluginprocesschild.h +++ b/indra/llplugin/llpluginprocesschild.h @@ -96,6 +96,8 @@ private:  	LLSocket::ptr_t mSocket;  	std::string mPluginFile; + +	std::string mUserDataPath;  	LLPluginInstance *mInstance; diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 332ce288d7..f60838b1e7 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -99,12 +99,13 @@ void LLPluginProcessParent::errorState(void)  		setState(STATE_ERROR);  } -void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug) +void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path)  {	  	mProcess.setExecutable(launcher_filename);  	mPluginFile = plugin_filename;  	mCPUUsage = 0.0f;  	mDebug = debug; +	mUserDataPath = user_data_path;  	setState(STATE_INITIALIZED);  } @@ -362,6 +363,7 @@ void LLPluginProcessParent::idle(void)  				{  					LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "load_plugin");  					message.setValue("file", mPluginFile); +					message.setValue("user_data_path", mUserDataPath);  					sendMessage(message);  				} diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h index 25669f5d78..6d661a6960 100644 --- a/indra/llplugin/llpluginprocessparent.h +++ b/indra/llplugin/llpluginprocessparent.h @@ -58,7 +58,7 @@ public:  	LLPluginProcessParent(LLPluginProcessParentOwner *owner);  	~LLPluginProcessParent(); -	void init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug = false); +	void init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path);  	void idle(void);  	// returns true if the plugin is on its way to steady state @@ -139,6 +139,8 @@ private:  	std::string mPluginFile; +	std::string mUserDataPath; +  	LLPluginProcessParentOwner *mOwner;  	typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType; | 
