// ---------------------------------------------------------------------------- // Generated by ScriptObjectFactory [Sat Sep 27 01:24:57 2003] // // File : // Class : FeedWatcherScriptObject // class layer : Automatic Object Scripting // ---------------------------------------------------------------------------- #include "precomp.h" #include "feedwatch.h" #include "FeedWatcherSO.h" // ScriptController Instance static FeedWatcherScriptController _feedWatcherScriptController;FeedWatcherScriptController *feedWatcherScriptController = &_feedWatcherScriptController; // Function Descriptor Table function_descriptor_struct FeedWatcherScriptController::exportedFunctions[] = { { L"setFeed", 1, script_setFeed }, { L"releaseFeed", 0, script_releaseFeed }, { L"onFeedChange", 1, script_feedwatcher_onFeedChange }, }; // Script Object Methods FeedWatcherScriptObject::FeedWatcherScriptObject() { if (!getScriptObject()) return; feedWatcherScriptObject_init(); } FeedWatcherScriptObject::~FeedWatcherScriptObject() { } void FeedWatcherScriptObject::feedWatcherScriptObject_init() { // Assign the script interface to this instance. getScriptObject()->vcpu_setInterface(FeedWatcherGuid, (void *)static_cast(this)); // Assign the class name to this instance. getScriptObject()->vcpu_setClassName(L"FeedWatcher"); // Assign the controller instance to this script object instance. getScriptObject()->vcpu_setController(feedWatcherScriptController); } // Script Object Methods void FeedWatcherScriptObject::feedwatcher_onFeedChange(const wchar_t *data) { FeedWatcherScriptController::script_feedwatcher_onFeedChange(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_STRING(data)); } scriptVar /*int */ FeedWatcherScriptController::script_setFeed(SCRIPT_FUNCTION_PARAMS, ScriptObject *_pSO, scriptVar /*const char **/ feedid) { // Begin all script methods with the init block. SCRIPT_FUNCTION_INIT; // Find the proper pointer for the "this" object, _pSO. FeedWatcher*_pObj = static_cast(_pSO->vcpu_getInterface(FeedWatcherGuid)); if (_pObj) { return MAKE_SCRIPT_INT(_pObj->setFeed(GET_SCRIPT_STRING(feedid))); } RETURN_SCRIPT_ZERO; } scriptVar /*void */ FeedWatcherScriptController::script_releaseFeed(SCRIPT_FUNCTION_PARAMS, ScriptObject *_pSO) { // Begin all script methods with the init block. SCRIPT_FUNCTION_INIT; // Find the proper pointer for the "this" object, _pSO. FeedWatcher*_pObj = static_cast(_pSO->vcpu_getInterface(FeedWatcherGuid)); if (_pObj) { // Then properly call the hosted object; _pObj->releaseFeed(); } RETURN_SCRIPT_VOID; } scriptVar /*void */ FeedWatcherScriptController::script_feedwatcher_onFeedChange(SCRIPT_FUNCTION_PARAMS, ScriptObject *_pSO, scriptVar /*const char **/ data) { // Begin all script methods with the init block SCRIPT_FUNCTION_INIT; // Honnor C++ hooks PROCESS_HOOKS1(_pSO, feedWatcherScriptController, data); // If there are no script hooks to execute, we abort here. SCRIPT_FUNCTION_CHECKABORTEVENT; // Otherwise we execute the script methods by calling this. SCRIPT_EXEC_EVENT1(_pSO, data); } // Script Controller // This method returns the human readable name of the class in script files. const wchar_t *FeedWatcherScriptController::getClassName() { return L"FeedWatcher"; } // This method returns the human readable name of the parent of this class. const wchar_t *FeedWatcherScriptController::getAncestorClassName() { return FEEDWATCHER_SCRIPTPARENTCLASS; } // This method returns the controller object for the parent class. ScriptObjectController *FeedWatcherScriptController::getAncestorController() { /* XML-Template-TODO : Support inheritance */ return NULL; } // This method returns the number of methods this class publishes. int FeedWatcherScriptController::getNumFunctions() { return sizeof(exportedFunctions) / sizeof(function_descriptor_struct); } // This method returns the block of published function descriptors. const function_descriptor_struct *FeedWatcherScriptController::getExportedFunctions() { return exportedFunctions; } // This method returns the GUID assigned to this script class. GUID FeedWatcherScriptController::getClassGuid() { return FeedWatcherGuid; } // This method creates and returns a new script class instance. ScriptObject *FeedWatcherScriptController::instantiate() { FeedWatcher*_pObj = new FeedWatcher(); ASSERT(_pObj != NULL); return _pObj->getScriptObject(); } // This method deletes a given script class instance. void FeedWatcherScriptController::destroy(ScriptObject *o) { FeedWatcher*_pObj = static_cast(o->vcpu_getInterface(FeedWatcherGuid)); ASSERT(_pObj != NULL); delete _pObj; } // This method returns an encapsulated interface for the given instance. void *FeedWatcherScriptController::encapsulate(ScriptObject *o) { // No automatic encapsulation return NULL; } // This method frees a previously encapsulated interface. void FeedWatcherScriptController::deencapsulate(void *o) { }