/* this file was generated by the MCOP idl compiler - DO NOT EDIT */

#include "artsbuilder.h"

// Implementation
Arts::PortType::PortType()
{
}

Arts::PortType::PortType(Arts::PortDirection _a_direction, const std::string& _a_dataType, Arts::PortConnType _a_connType, bool _a_isMultiPort)
{
	this->direction = _a_direction;
	this->dataType = _a_dataType;
	this->connType = _a_connType;
	this->isMultiPort = _a_isMultiPort;
}

Arts::PortType::PortType(Arts::Buffer& stream)
{
	readType(stream);
}

Arts::PortType::PortType(const Arts::PortType& copyType) : Arts::Type(copyType)
{
	Arts::Buffer buffer;
	copyType.writeType(buffer);
	readType(buffer);
}

Arts::PortType& Arts::PortType::operator=(const Arts::PortType& assignType)
{
	Arts::Buffer buffer;
	assignType.writeType(buffer);
	readType(buffer);
	return *this;
}

void Arts::PortType::readType(Arts::Buffer& stream)
{
	direction = (Arts::PortDirection)stream.readLong();
	stream.readString(dataType);
	connType = (Arts::PortConnType)stream.readLong();
	isMultiPort = stream.readBool();
}

void Arts::PortType::writeType(Arts::Buffer& stream) const
{
	stream.writeLong(direction);
	stream.writeString(dataType);
	stream.writeLong(connType);
	stream.writeBool(isMultiPort);
}

std::string Arts::PortType::_typeName() const
{
	return "Arts::PortType";
}

Arts::ModuleInfo::ModuleInfo()
{
}

Arts::ModuleInfo::ModuleInfo(const std::string& _a_name, const std::vector<Arts::PortType>& _a_ports, const std::vector<std::string>& _a_portnames, bool _a_isInterface, bool _a_isStructure)
{
	this->name = _a_name;
	this->ports = _a_ports;
	this->portnames = _a_portnames;
	this->isInterface = _a_isInterface;
	this->isStructure = _a_isStructure;
}

Arts::ModuleInfo::ModuleInfo(Arts::Buffer& stream)
{
	readType(stream);
}

Arts::ModuleInfo::ModuleInfo(const Arts::ModuleInfo& copyType) : Arts::Type(copyType)
{
	Arts::Buffer buffer;
	copyType.writeType(buffer);
	readType(buffer);
}

Arts::ModuleInfo& Arts::ModuleInfo::operator=(const Arts::ModuleInfo& assignType)
{
	Arts::Buffer buffer;
	assignType.writeType(buffer);
	readType(buffer);
	return *this;
}

void Arts::ModuleInfo::readType(Arts::Buffer& stream)
{
	stream.readString(name);
	Arts::readTypeSeq(stream,ports);
	stream.readStringSeq(portnames);
	isInterface = stream.readBool();
	isStructure = stream.readBool();
}

void Arts::ModuleInfo::writeType(Arts::Buffer& stream) const
{
	stream.writeString(name);
	Arts::writeTypeSeq(stream,ports);
	stream.writeStringSeq(portnames);
	stream.writeBool(isInterface);
	stream.writeBool(isStructure);
}

std::string Arts::ModuleInfo::_typeName() const
{
	return "Arts::ModuleInfo";
}

Arts::PortDesc_base *Arts::PortDesc_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::PortDesc_base *castedObject = (Arts::PortDesc_base *)skel->_cast(Arts::PortDesc_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::PortDesc_base *Arts::PortDesc_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::PortDesc_base::_fromReference(r,true);
	return 0;
}

Arts::PortDesc_base *Arts::PortDesc_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::PortDesc_base *castedObject = (Arts::PortDesc_base *)object._base()->_cast(Arts::PortDesc_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::PortDesc_base *Arts::PortDesc_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::PortDesc_base *result;
	result = (Arts::PortDesc_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::PortDesc");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::PortDesc_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::PortDesc")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::PortDesc_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::PortDesc_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::PortDesc_base::_cast(unsigned long iid)
{
	if(iid == Arts::PortDesc_base::_IID) return (Arts::PortDesc_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::PortDesc_stub::PortDesc_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::PortDesc_stub::PortDesc_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

void Arts::PortDesc_stub::constructor(Arts::ModuleDesc parent, const std::string& name, const Arts::PortType& type)
{
	long methodID = _lookupMethodFast("method:0000000c636f6e7374727563746f720000000005766f696400000000020000000300000011417274733a3a4d6f64756c65446573630000000007706172656e74000000000000000007737472696e6700000000056e616d6500000000000000000f417274733a3a506f727454797065000000000574797065000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,parent._base());
	request->writeString(name);
	type.writeType(*request);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

bool Arts::PortDesc_stub::connectTo(Arts::PortDesc port)
{
	long methodID = _lookupMethodFast("method:0000000a636f6e6e656374546f0000000008626f6f6c65616e0000000002000000010000000f417274733a3a506f7274446573630000000005706f7274000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,port._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

void Arts::PortDesc_stub::disconnectFrom(Arts::PortDesc port)
{
	long methodID = _lookupMethodFast("method:0000000f646973636f6e6e65637446726f6d0000000005766f69640000000002000000010000000f417274733a3a506f7274446573630000000005706f7274000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,port._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::PortDesc_stub::disconnectAll()
{
	long methodID = _lookupMethodFast("method:0000000e646973636f6e6e656374416c6c0000000005766f696400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

std::vector<std::string> * Arts::PortDesc_stub::saveToList()
{
	long methodID = _lookupMethodFast("method:0000000b73617665546f4c69737400000000082a737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<std::string> *_returnCode = new std::vector<std::string>;
	if(!result) return _returnCode; // error occurred
	result->readStringSeq(*_returnCode);
	delete result;
	return _returnCode;
}

void Arts::PortDesc_stub::loadFromList(const std::vector<std::string>& list)
{
	long methodID = _lookupMethodFast("method:0000000d6c6f616446726f6d4c6973740000000005766f6964000000000200000001000000082a737472696e6700000000056c697374000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeStringSeq(list);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::PortDesc_stub::internalConnectInput(Arts::PortDesc port)
{
	long methodID = _lookupMethodFast("method:00000015696e7465726e616c436f6e6e656374496e7075740000000005766f69640000000002000000010000000f417274733a3a506f7274446573630000000005706f7274000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,port._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::PortDesc_stub::internalReConnect(const std::vector<Arts::PortDesc>& allports)
{
	long methodID = _lookupMethodFast("method:00000012696e7465726e616c5265436f6e6e6563740000000005766f6964000000000200000001000000102a417274733a3a506f7274446573630000000009616c6c706f727473000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObjectSeq(*request,allports);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

long Arts::PortDesc_stub::ID()
{
	long methodID = _lookupMethodFast("method:000000085f6765745f494400000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

Arts::ModuleDesc Arts::PortDesc_stub::parent()
{
	long methodID = _lookupMethodFast("method:0000000c5f6765745f706172656e740000000011417274733a3a4d6f64756c654465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::ModuleDesc::null();
	Arts::ModuleDesc_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::ModuleDesc::_from_base(returnCode);
}

std::string Arts::PortDesc_stub::name()
{
	long methodID = _lookupMethodFast("method:0000000a5f6765745f6e616d650000000007737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return""; // error occurred
	std::string returnCode;
	result->readString(returnCode);
	delete result;
	return returnCode;
}

Arts::PortType Arts::PortDesc_stub::type()
{
	long methodID = _lookupMethodFast("method:0000000a5f6765745f74797065000000000f417274733a3a506f72745479706500000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return Arts::PortType(); // error occurred
	Arts::PortType _returnCode(*result);
	delete result;
	return _returnCode;
}

bool Arts::PortDesc_stub::isConnected()
{
	long methodID = _lookupMethodFast("method:000000115f6765745f6973436f6e6e65637465640000000008626f6f6c65616e00000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

bool Arts::PortDesc_stub::hasValue()
{
	long methodID = _lookupMethodFast("method:0000000e5f6765745f68617356616c75650000000008626f6f6c65616e00000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

void Arts::PortDesc_stub::hasValue(bool newValue)
{
	long methodID = _lookupMethodFast("method:0000000e5f7365745f68617356616c75650000000005766f696400000000020000000100000008626f6f6c65616e00000000096e657756616c7565000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeBool(newValue);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

std::vector<Arts::PortDesc> * Arts::PortDesc_stub::connections()
{
	long methodID = _lookupMethodFast("method:000000115f6765745f636f6e6e656374696f6e7300000000102a417274733a3a506f72744465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<Arts::PortDesc> *_returnCode = new std::vector<Arts::PortDesc>;
	if(!result) return _returnCode; // error occurred
	Arts::readObjectSeq(*result,*_returnCode);
	delete result;
	return _returnCode;
}

float Arts::PortDesc_stub::floatValue()
{
	long methodID = _lookupMethodFast("method:000000105f6765745f666c6f617456616c75650000000006666c6f617400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0.0; // error occurred
	float returnCode = result->readFloat();
	delete result;
	return returnCode;
}

void Arts::PortDesc_stub::floatValue(float newValue)
{
	long methodID = _lookupMethodFast("method:000000105f7365745f666c6f617456616c75650000000005766f696400000000020000000100000006666c6f617400000000096e657756616c7565000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeFloat(newValue);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

std::string Arts::PortDesc_stub::stringValue()
{
	long methodID = _lookupMethodFast("method:000000115f6765745f737472696e6756616c75650000000007737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return""; // error occurred
	std::string returnCode;
	result->readString(returnCode);
	delete result;
	return returnCode;
}

void Arts::PortDesc_stub::stringValue(const std::string& newValue)
{
	long methodID = _lookupMethodFast("method:000000115f7365745f737472696e6756616c75650000000005766f696400000000020000000100000007737472696e6700000000096e657756616c7565000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(newValue);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

Arts::Any Arts::PortDesc_stub::value()
{
	long methodID = _lookupMethodFast("method:0000000b5f6765745f76616c7565000000000a417274733a3a416e7900000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return Arts::Any(); // error occurred
	Arts::Any _returnCode(*result);
	delete result;
	return _returnCode;
}

void Arts::PortDesc_stub::value(const Arts::Any& newValue)
{
	long methodID = _lookupMethodFast("method:0000000b5f7365745f76616c75650000000005766f69640000000002000000010000000a417274733a3a416e7900000000096e657756616c7565000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	newValue.writeType(*request);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

long Arts::PortDesc_stub::internalOldID()
{
	long methodID = _lookupMethodFast("method:000000135f6765745f696e7465726e616c4f6c64494400000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

std::string Arts::PortDesc_skel::_interfaceName()
{
	return "Arts::PortDesc";
}

bool Arts::PortDesc_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::PortDesc") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::PortDesc_skel::_interfaceNameSkel()
{
	return "Arts::PortDesc";
}

// constructor
static void _dispatch_Arts_PortDesc_00(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::ModuleDesc_base* _temp_parent;
	Arts::readObject(*request,_temp_parent);
	Arts::ModuleDesc parent = Arts::ModuleDesc::_from_base(_temp_parent);
	std::string name;
	request->readString(name);
	Arts::PortType type(*request);
	((Arts::PortDesc_skel *)object)->constructor(parent,name,type);
}

// connectTo
static void _dispatch_Arts_PortDesc_01(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	Arts::PortDesc_base* _temp_port;
	Arts::readObject(*request,_temp_port);
	Arts::PortDesc port = Arts::PortDesc::_from_base(_temp_port);
	result->writeBool(((Arts::PortDesc_skel *)object)->connectTo(port));
}

// disconnectFrom
static void _dispatch_Arts_PortDesc_02(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::PortDesc_base* _temp_port;
	Arts::readObject(*request,_temp_port);
	Arts::PortDesc port = Arts::PortDesc::_from_base(_temp_port);
	((Arts::PortDesc_skel *)object)->disconnectFrom(port);
}

// disconnectAll
static void _dispatch_Arts_PortDesc_03(void *object, Arts::Buffer *, Arts::Buffer *)
{
	((Arts::PortDesc_skel *)object)->disconnectAll();
}

// saveToList
static void _dispatch_Arts_PortDesc_04(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<std::string> *_returnCode = ((Arts::PortDesc_skel *)object)->saveToList();
	result->writeStringSeq(*_returnCode);
	delete _returnCode;
}

// loadFromList
static void _dispatch_Arts_PortDesc_05(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::vector<std::string> list;
	request->readStringSeq(list);
	((Arts::PortDesc_skel *)object)->loadFromList(list);
}

// internalConnectInput
static void _dispatch_Arts_PortDesc_06(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::PortDesc_base* _temp_port;
	Arts::readObject(*request,_temp_port);
	Arts::PortDesc port = Arts::PortDesc::_from_base(_temp_port);
	((Arts::PortDesc_skel *)object)->internalConnectInput(port);
}

// internalReConnect
static void _dispatch_Arts_PortDesc_07(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::vector<Arts::PortDesc> allports;
	Arts::readObjectSeq(*request,allports);
	((Arts::PortDesc_skel *)object)->internalReConnect(allports);
}

// _get_ID
static void _dispatch_Arts_PortDesc_08(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::PortDesc_skel *)object)->ID());
}

// _get_parent
static void _dispatch_Arts_PortDesc_09(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	Arts::ModuleDesc returnCode = ((Arts::PortDesc_skel *)object)->parent();
	Arts::writeObject(*result,returnCode._base());
}

// _get_name
static void _dispatch_Arts_PortDesc_10(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeString(((Arts::PortDesc_skel *)object)->name());
}

// _get_type
static void _dispatch_Arts_PortDesc_11(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	Arts::PortType _returnCode = ((Arts::PortDesc_skel *)object)->type();
	_returnCode.writeType(*result);
}

// _get_isConnected
static void _dispatch_Arts_PortDesc_12(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeBool(((Arts::PortDesc_skel *)object)->isConnected());
}

// _get_hasValue
static void _dispatch_Arts_PortDesc_13(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeBool(((Arts::PortDesc_skel *)object)->hasValue());
}

// _set_hasValue
static void _dispatch_Arts_PortDesc_14(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	bool newValue = request->readBool();
	((Arts::PortDesc_skel *)object)->hasValue(newValue);
}

// _get_connections
static void _dispatch_Arts_PortDesc_15(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<Arts::PortDesc> *_returnCode = ((Arts::PortDesc_skel *)object)->connections();
	Arts::writeObjectSeq(*result,*_returnCode);
	delete _returnCode;
}

// _get_floatValue
static void _dispatch_Arts_PortDesc_16(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeFloat(((Arts::PortDesc_skel *)object)->floatValue());
}

// _set_floatValue
static void _dispatch_Arts_PortDesc_17(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	float newValue = request->readFloat();
	((Arts::PortDesc_skel *)object)->floatValue(newValue);
}

// _get_stringValue
static void _dispatch_Arts_PortDesc_18(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeString(((Arts::PortDesc_skel *)object)->stringValue());
}

// _set_stringValue
static void _dispatch_Arts_PortDesc_19(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::string newValue;
	request->readString(newValue);
	((Arts::PortDesc_skel *)object)->stringValue(newValue);
}

// _get_value
static void _dispatch_Arts_PortDesc_20(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	Arts::Any _returnCode = ((Arts::PortDesc_skel *)object)->value();
	_returnCode.writeType(*result);
}

// _set_value
static void _dispatch_Arts_PortDesc_21(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::Any newValue(*request);
	((Arts::PortDesc_skel *)object)->value(newValue);
}

// _get_internalOldID
static void _dispatch_Arts_PortDesc_22(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::PortDesc_skel *)object)->internalOldID());
}

void Arts::PortDesc_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:0000000c636f6e7374727563746f720000000005766f6964000000"
        "00020000000300000011417274733a3a4d6f64756c654465736300000000077061"
        "72656e74000000000000000007737472696e6700000000056e616d650000000000"
        "0000000f417274733a3a506f727454797065000000000574797065000000000000"
        "0000000000000a636f6e6e656374546f0000000008626f6f6c65616e0000000002"
        "000000010000000f417274733a3a506f7274446573630000000005706f72740000"
        "000000000000000000000f646973636f6e6e65637446726f6d0000000005766f69"
        "640000000002000000010000000f417274733a3a506f7274446573630000000005"
        "706f72740000000000000000000000000e646973636f6e6e656374416c6c000000"
        "0005766f6964000000000200000000000000000000000b73617665546f4c697374"
        "00000000082a737472696e67000000000200000000000000000000000d6c6f6164"
        "46726f6d4c6973740000000005766f6964000000000200000001000000082a7374"
        "72696e6700000000056c69737400000000000000000000000015696e7465726e61"
        "6c436f6e6e656374496e7075740000000005766f69640000000002000000010000"
        "000f417274733a3a506f7274446573630000000005706f72740000000000000000"
        "0000000012696e7465726e616c5265436f6e6e6563740000000005766f69640000"
        "00000200000001000000102a417274733a3a506f7274446573630000000009616c"
        "6c706f727473000000000000000000000000085f6765745f494400000000056c6f"
        "6e67000000000200000000000000000000000c5f6765745f706172656e74000000"
        "0011417274733a3a4d6f64756c6544657363000000000200000000000000000000"
        "000a5f6765745f6e616d650000000007737472696e670000000002000000000000"
        "00000000000a5f6765745f74797065000000000f417274733a3a506f7274547970"
        "6500000000020000000000000000000000115f6765745f6973436f6e6e65637465"
        "640000000008626f6f6c65616e000000000200000000000000000000000e5f6765"
        "745f68617356616c75650000000008626f6f6c65616e0000000002000000000000"
        "00000000000e5f7365745f68617356616c75650000000005766f69640000000002"
        "0000000100000008626f6f6c65616e00000000096e657756616c75650000000000"
        "00000000000000115f6765745f636f6e6e656374696f6e7300000000102a417274"
        "733a3a506f72744465736300000000020000000000000000000000105f6765745f"
        "666c6f617456616c75650000000006666c6f617400000000020000000000000000"
        "000000105f7365745f666c6f617456616c75650000000005766f69640000000002"
        "0000000100000006666c6f617400000000096e657756616c756500000000000000"
        "0000000000115f6765745f737472696e6756616c75650000000007737472696e67"
        "00000000020000000000000000000000115f7365745f737472696e6756616c7565"
        "0000000005766f696400000000020000000100000007737472696e670000000009"
        "6e657756616c75650000000000000000000000000b5f6765745f76616c75650000"
        "00000a417274733a3a416e79000000000200000000000000000000000b5f736574"
        "5f76616c75650000000005766f69640000000002000000010000000a417274733a"
        "3a416e7900000000096e657756616c7565000000000000000000000000135f6765"
        "745f696e7465726e616c4f6c64494400000000056c6f6e67000000000200000000"
        "00000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_PortDesc_00,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_01,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_02,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_03,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_04,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_05,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_06,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_07,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_08,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_09,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_10,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_11,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_12,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_13,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_14,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_15,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_16,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_17,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_18,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_19,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_20,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_21,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_PortDesc_22,this,Arts::MethodDef(m));
}

Arts::PortDesc_skel::PortDesc_skel()
{
}

Arts::Object_base* Arts::PortDesc::_Creator() {
	return Arts::PortDesc_base::_create();
}

unsigned long Arts::PortDesc_base::_IID = Arts::MCOPUtils::makeIID("Arts::PortDesc");

Arts::ModuleDesc_base *Arts::ModuleDesc_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::ModuleDesc_base *castedObject = (Arts::ModuleDesc_base *)skel->_cast(Arts::ModuleDesc_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::ModuleDesc_base *Arts::ModuleDesc_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::ModuleDesc_base::_fromReference(r,true);
	return 0;
}

Arts::ModuleDesc_base *Arts::ModuleDesc_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::ModuleDesc_base *castedObject = (Arts::ModuleDesc_base *)object._base()->_cast(Arts::ModuleDesc_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::ModuleDesc_base *Arts::ModuleDesc_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::ModuleDesc_base *result;
	result = (Arts::ModuleDesc_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::ModuleDesc");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::ModuleDesc_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::ModuleDesc")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::ModuleDesc_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::ModuleDesc_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::ModuleDesc_base::_cast(unsigned long iid)
{
	if(iid == Arts::ModuleDesc_base::_IID) return (Arts::ModuleDesc_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::ModuleDesc_stub::ModuleDesc_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::ModuleDesc_stub::ModuleDesc_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

void Arts::ModuleDesc_stub::constructor(Arts::StructureDesc parent, const Arts::ModuleInfo& info)
{
	long methodID = _lookupMethodFast("method:0000000c636f6e7374727563746f720000000005766f696400000000020000000200000014417274733a3a537472756374757265446573630000000007706172656e74000000000000000011417274733a3a4d6f64756c65496e666f0000000005696e666f000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,parent._base());
	info.writeType(*request);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

bool Arts::ModuleDesc_stub::moveTo(long x, long y)
{
	long methodID = _lookupMethodFast("method:000000076d6f7665546f0000000008626f6f6c65616e000000000200000002000000056c6f6e670000000002780000000000000000056c6f6e67000000000279000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeLong(x);
	request->writeLong(y);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

Arts::PortDesc Arts::ModuleDesc_stub::findPort(const std::string& name)
{
	long methodID = _lookupMethodFast("method:0000000966696e64506f7274000000000f417274733a3a506f72744465736300000000020000000100000007737472696e6700000000056e616d65000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(name);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::PortDesc::null();
	Arts::PortDesc_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::PortDesc::_from_base(returnCode);
}

std::vector<std::string> * Arts::ModuleDesc_stub::saveToList()
{
	long methodID = _lookupMethodFast("method:0000000b73617665546f4c69737400000000082a737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<std::string> *_returnCode = new std::vector<std::string>;
	if(!result) return _returnCode; // error occurred
	result->readStringSeq(*_returnCode);
	delete result;
	return _returnCode;
}

void Arts::ModuleDesc_stub::loadFromList(const std::vector<std::string>& list)
{
	long methodID = _lookupMethodFast("method:0000000d6c6f616446726f6d4c6973740000000005766f6964000000000200000001000000082a737472696e6700000000056c697374000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeStringSeq(list);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

long Arts::ModuleDesc_stub::ID()
{
	long methodID = _lookupMethodFast("method:000000085f6765745f494400000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

Arts::StructureDesc Arts::ModuleDesc_stub::parent()
{
	long methodID = _lookupMethodFast("method:0000000c5f6765745f706172656e740000000014417274733a3a5374727563747572654465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::StructureDesc::null();
	Arts::StructureDesc_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::StructureDesc::_from_base(returnCode);
}

std::string Arts::ModuleDesc_stub::name()
{
	long methodID = _lookupMethodFast("method:0000000a5f6765745f6e616d650000000007737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return""; // error occurred
	std::string returnCode;
	result->readString(returnCode);
	delete result;
	return returnCode;
}

std::vector<Arts::PortDesc> * Arts::ModuleDesc_stub::ports()
{
	long methodID = _lookupMethodFast("method:0000000b5f6765745f706f72747300000000102a417274733a3a506f72744465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<Arts::PortDesc> *_returnCode = new std::vector<Arts::PortDesc>;
	if(!result) return _returnCode; // error occurred
	Arts::readObjectSeq(*result,*_returnCode);
	delete result;
	return _returnCode;
}

long Arts::ModuleDesc_stub::x()
{
	long methodID = _lookupMethodFast("method:000000075f6765745f7800000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

long Arts::ModuleDesc_stub::y()
{
	long methodID = _lookupMethodFast("method:000000075f6765745f7900000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

long Arts::ModuleDesc_stub::width()
{
	long methodID = _lookupMethodFast("method:0000000b5f6765745f776964746800000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

long Arts::ModuleDesc_stub::height()
{
	long methodID = _lookupMethodFast("method:0000000c5f6765745f68656967687400000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

bool Arts::ModuleDesc_stub::isInterface()
{
	long methodID = _lookupMethodFast("method:000000115f6765745f6973496e746572666163650000000008626f6f6c65616e00000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

bool Arts::ModuleDesc_stub::isStructure()
{
	long methodID = _lookupMethodFast("method:000000115f6765745f69735374727563747572650000000008626f6f6c65616e00000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

std::string Arts::ModuleDesc_skel::_interfaceName()
{
	return "Arts::ModuleDesc";
}

bool Arts::ModuleDesc_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::ModuleDesc") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::ModuleDesc_skel::_interfaceNameSkel()
{
	return "Arts::ModuleDesc";
}

// constructor
static void _dispatch_Arts_ModuleDesc_00(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::StructureDesc_base* _temp_parent;
	Arts::readObject(*request,_temp_parent);
	Arts::StructureDesc parent = Arts::StructureDesc::_from_base(_temp_parent);
	Arts::ModuleInfo info(*request);
	((Arts::ModuleDesc_skel *)object)->constructor(parent,info);
}

// moveTo
static void _dispatch_Arts_ModuleDesc_01(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	long x = request->readLong();
	long y = request->readLong();
	result->writeBool(((Arts::ModuleDesc_skel *)object)->moveTo(x,y));
}

// findPort
static void _dispatch_Arts_ModuleDesc_02(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	std::string name;
	request->readString(name);
	Arts::PortDesc returnCode = ((Arts::ModuleDesc_skel *)object)->findPort(name);
	Arts::writeObject(*result,returnCode._base());
}

// saveToList
static void _dispatch_Arts_ModuleDesc_03(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<std::string> *_returnCode = ((Arts::ModuleDesc_skel *)object)->saveToList();
	result->writeStringSeq(*_returnCode);
	delete _returnCode;
}

// loadFromList
static void _dispatch_Arts_ModuleDesc_04(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::vector<std::string> list;
	request->readStringSeq(list);
	((Arts::ModuleDesc_skel *)object)->loadFromList(list);
}

// _get_ID
static void _dispatch_Arts_ModuleDesc_05(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::ModuleDesc_skel *)object)->ID());
}

// _get_parent
static void _dispatch_Arts_ModuleDesc_06(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	Arts::StructureDesc returnCode = ((Arts::ModuleDesc_skel *)object)->parent();
	Arts::writeObject(*result,returnCode._base());
}

// _get_name
static void _dispatch_Arts_ModuleDesc_07(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeString(((Arts::ModuleDesc_skel *)object)->name());
}

// _get_ports
static void _dispatch_Arts_ModuleDesc_08(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<Arts::PortDesc> *_returnCode = ((Arts::ModuleDesc_skel *)object)->ports();
	Arts::writeObjectSeq(*result,*_returnCode);
	delete _returnCode;
}

// _get_x
static void _dispatch_Arts_ModuleDesc_09(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::ModuleDesc_skel *)object)->x());
}

// _get_y
static void _dispatch_Arts_ModuleDesc_10(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::ModuleDesc_skel *)object)->y());
}

// _get_width
static void _dispatch_Arts_ModuleDesc_11(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::ModuleDesc_skel *)object)->width());
}

// _get_height
static void _dispatch_Arts_ModuleDesc_12(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::ModuleDesc_skel *)object)->height());
}

// _get_isInterface
static void _dispatch_Arts_ModuleDesc_13(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeBool(((Arts::ModuleDesc_skel *)object)->isInterface());
}

// _get_isStructure
static void _dispatch_Arts_ModuleDesc_14(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeBool(((Arts::ModuleDesc_skel *)object)->isStructure());
}

void Arts::ModuleDesc_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:0000000c636f6e7374727563746f720000000005766f6964000000"
        "00020000000200000014417274733a3a5374727563747572654465736300000000"
        "07706172656e74000000000000000011417274733a3a4d6f64756c65496e666f00"
        "00000005696e666f000000000000000000000000076d6f7665546f000000000862"
        "6f6f6c65616e000000000200000002000000056c6f6e6700000000027800000000"
        "00000000056c6f6e670000000002790000000000000000000000000966696e6450"
        "6f7274000000000f417274733a3a506f7274446573630000000002000000010000"
        "0007737472696e6700000000056e616d650000000000000000000000000b736176"
        "65546f4c69737400000000082a737472696e670000000002000000000000000000"
        "00000d6c6f616446726f6d4c6973740000000005766f6964000000000200000001"
        "000000082a737472696e6700000000056c69737400000000000000000000000008"
        "5f6765745f494400000000056c6f6e67000000000200000000000000000000000c"
        "5f6765745f706172656e740000000014417274733a3a5374727563747572654465"
        "7363000000000200000000000000000000000a5f6765745f6e616d650000000007"
        "737472696e67000000000200000000000000000000000b5f6765745f706f727473"
        "00000000102a417274733a3a506f72744465736300000000020000000000000000"
        "000000075f6765745f7800000000056c6f6e670000000002000000000000000000"
        "0000075f6765745f7900000000056c6f6e67000000000200000000000000000000"
        "000b5f6765745f776964746800000000056c6f6e67000000000200000000000000"
        "000000000c5f6765745f68656967687400000000056c6f6e670000000002000000"
        "0000000000000000115f6765745f6973496e746572666163650000000008626f6f"
        "6c65616e00000000020000000000000000000000115f6765745f69735374727563"
        "747572650000000008626f6f6c65616e00000000020000000000000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_ModuleDesc_00,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_01,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_02,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_03,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_04,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_05,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_06,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_07,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_08,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_09,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_10,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_11,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_12,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_13,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_ModuleDesc_14,this,Arts::MethodDef(m));
}

Arts::ModuleDesc_skel::ModuleDesc_skel()
{
}

Arts::Object_base* Arts::ModuleDesc::_Creator() {
	return Arts::ModuleDesc_base::_create();
}

unsigned long Arts::ModuleDesc_base::_IID = Arts::MCOPUtils::makeIID("Arts::ModuleDesc");

Arts::StructureDesc_base *Arts::StructureDesc_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::StructureDesc_base *castedObject = (Arts::StructureDesc_base *)skel->_cast(Arts::StructureDesc_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::StructureDesc_base *Arts::StructureDesc_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::StructureDesc_base::_fromReference(r,true);
	return 0;
}

Arts::StructureDesc_base *Arts::StructureDesc_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::StructureDesc_base *castedObject = (Arts::StructureDesc_base *)object._base()->_cast(Arts::StructureDesc_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::StructureDesc_base *Arts::StructureDesc_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::StructureDesc_base *result;
	result = (Arts::StructureDesc_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::StructureDesc");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::StructureDesc_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::StructureDesc")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::StructureDesc_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::StructureDesc_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::StructureDesc_base::_cast(unsigned long iid)
{
	if(iid == Arts::StructureDesc_base::_IID) return (Arts::StructureDesc_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::StructureDesc_stub::StructureDesc_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::StructureDesc_stub::StructureDesc_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

long Arts::StructureDesc_stub::obtainID()
{
	long methodID = _lookupMethodFast("method:000000096f627461696e494400000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

std::vector<std::string> * Arts::StructureDesc_stub::saveToList()
{
	long methodID = _lookupMethodFast("method:0000000b73617665546f4c69737400000000082a737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<std::string> *_returnCode = new std::vector<std::string>;
	if(!result) return _returnCode; // error occurred
	result->readStringSeq(*_returnCode);
	delete result;
	return _returnCode;
}

void Arts::StructureDesc_stub::loadFromList(const std::vector<std::string>& list)
{
	long methodID = _lookupMethodFast("method:0000000d6c6f616446726f6d4c6973740000000005766f6964000000000200000001000000082a737472696e6700000000056c697374000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeStringSeq(list);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructureDesc_stub::clear()
{
	long methodID = _lookupMethodFast("method:00000006636c6561720000000005766f696400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

Arts::ModuleDesc Arts::StructureDesc_stub::createModuleDesc(const Arts::ModuleInfo& info)
{
	long methodID = _lookupMethodFast("method:000000116372656174654d6f64756c65446573630000000011417274733a3a4d6f64756c654465736300000000020000000100000011417274733a3a4d6f64756c65496e666f0000000005696e666f000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	info.writeType(*request);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::ModuleDesc::null();
	Arts::ModuleDesc_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::ModuleDesc::_from_base(returnCode);
}

void Arts::StructureDesc_stub::freeModuleDesc(Arts::ModuleDesc moduledesc)
{
	long methodID = _lookupMethodFast("method:0000000f667265654d6f64756c65446573630000000005766f696400000000020000000100000011417274733a3a4d6f64756c6544657363000000000b6d6f64756c6564657363000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,moduledesc._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

Arts::StructurePortDesc Arts::StructureDesc_stub::createStructurePortDesc(const Arts::PortType& type, const std::string& name)
{
	long methodID = _lookupMethodFast("method:00000018637265617465537472756374757265506f7274446573630000000018417274733a3a537472756374757265506f7274446573630000000002000000020000000f417274733a3a506f727454797065000000000574797065000000000000000007737472696e6700000000056e616d65000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	type.writeType(*request);
	request->writeString(name);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::StructurePortDesc::null();
	Arts::StructurePortDesc_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::StructurePortDesc::_from_base(returnCode);
}

void Arts::StructureDesc_stub::freeStructurePortDesc(Arts::StructurePortDesc portdesc)
{
	long methodID = _lookupMethodFast("method:0000001666726565537472756374757265506f7274446573630000000005766f696400000000020000000100000018417274733a3a537472756374757265506f7274446573630000000009706f727464657363000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,portdesc._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructureDesc_stub::moveStructurePortDesc(Arts::StructurePortDesc portdesc, long newposition)
{
	long methodID = _lookupMethodFast("method:000000166d6f7665537472756374757265506f7274446573630000000005766f696400000000020000000200000018417274733a3a537472756374757265506f7274446573630000000009706f7274646573630000000000000000056c6f6e67000000000c6e6577706f736974696f6e000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,portdesc._base());
	request->writeLong(newposition);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructureDesc_stub::addInheritedInterface(const std::string& iface)
{
	long methodID = _lookupMethodFast("method:00000016616464496e68657269746564496e746572666163650000000005766f696400000000020000000100000007737472696e6700000000066966616365000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(iface);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructureDesc_stub::removeInheritedInterface(const std::string& iface)
{
	long methodID = _lookupMethodFast("method:0000001972656d6f7665496e68657269746564496e746572666163650000000005766f696400000000020000000100000007737472696e6700000000066966616365000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(iface);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

bool Arts::StructureDesc_stub::valid()
{
	long methodID = _lookupMethodFast("method:0000000b5f6765745f76616c69640000000008626f6f6c65616e00000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

std::string Arts::StructureDesc_stub::name()
{
	long methodID = _lookupMethodFast("method:0000000a5f6765745f6e616d650000000007737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return""; // error occurred
	std::string returnCode;
	result->readString(returnCode);
	delete result;
	return returnCode;
}

void Arts::StructureDesc_stub::name(const std::string& newValue)
{
	long methodID = _lookupMethodFast("method:0000000a5f7365745f6e616d650000000005766f696400000000020000000100000007737472696e6700000000096e657756616c7565000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(newValue);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

std::vector<Arts::ModuleDesc> * Arts::StructureDesc_stub::modules()
{
	long methodID = _lookupMethodFast("method:0000000d5f6765745f6d6f64756c657300000000122a417274733a3a4d6f64756c654465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<Arts::ModuleDesc> *_returnCode = new std::vector<Arts::ModuleDesc>;
	if(!result) return _returnCode; // error occurred
	Arts::readObjectSeq(*result,*_returnCode);
	delete result;
	return _returnCode;
}

std::vector<Arts::StructurePortDesc> * Arts::StructureDesc_stub::ports()
{
	long methodID = _lookupMethodFast("method:0000000b5f6765745f706f72747300000000192a417274733a3a537472756374757265506f72744465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<Arts::StructurePortDesc> *_returnCode = new std::vector<Arts::StructurePortDesc>;
	if(!result) return _returnCode; // error occurred
	Arts::readObjectSeq(*result,*_returnCode);
	delete result;
	return _returnCode;
}

std::vector<std::string> * Arts::StructureDesc_stub::inheritedInterfaces()
{
	long methodID = _lookupMethodFast("method:000000195f6765745f696e68657269746564496e746572666163657300000000082a737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	std::vector<std::string> *_returnCode = new std::vector<std::string>;
	if(!result) return _returnCode; // error occurred
	result->readStringSeq(*_returnCode);
	delete result;
	return _returnCode;
}

Arts::ModuleInfo Arts::StructureDesc_stub::externalInterface()
{
	long methodID = _lookupMethodFast("method:000000175f6765745f65787465726e616c496e746572666163650000000011417274733a3a4d6f64756c65496e666f00000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return Arts::ModuleInfo(); // error occurred
	Arts::ModuleInfo _returnCode(*result);
	delete result;
	return _returnCode;
}

std::string Arts::StructureDesc_skel::_interfaceName()
{
	return "Arts::StructureDesc";
}

bool Arts::StructureDesc_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::StructureDesc") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::StructureDesc_skel::_interfaceNameSkel()
{
	return "Arts::StructureDesc";
}

// obtainID
static void _dispatch_Arts_StructureDesc_00(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::StructureDesc_skel *)object)->obtainID());
}

// saveToList
static void _dispatch_Arts_StructureDesc_01(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<std::string> *_returnCode = ((Arts::StructureDesc_skel *)object)->saveToList();
	result->writeStringSeq(*_returnCode);
	delete _returnCode;
}

// loadFromList
static void _dispatch_Arts_StructureDesc_02(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::vector<std::string> list;
	request->readStringSeq(list);
	((Arts::StructureDesc_skel *)object)->loadFromList(list);
}

// clear
static void _dispatch_Arts_StructureDesc_03(void *object, Arts::Buffer *, Arts::Buffer *)
{
	((Arts::StructureDesc_skel *)object)->clear();
}

// createModuleDesc
static void _dispatch_Arts_StructureDesc_04(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	Arts::ModuleInfo info(*request);
	Arts::ModuleDesc returnCode = ((Arts::StructureDesc_skel *)object)->createModuleDesc(info);
	Arts::writeObject(*result,returnCode._base());
}

// freeModuleDesc
static void _dispatch_Arts_StructureDesc_05(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::ModuleDesc_base* _temp_moduledesc;
	Arts::readObject(*request,_temp_moduledesc);
	Arts::ModuleDesc moduledesc = Arts::ModuleDesc::_from_base(_temp_moduledesc);
	((Arts::StructureDesc_skel *)object)->freeModuleDesc(moduledesc);
}

// createStructurePortDesc
static void _dispatch_Arts_StructureDesc_06(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	Arts::PortType type(*request);
	std::string name;
	request->readString(name);
	Arts::StructurePortDesc returnCode = ((Arts::StructureDesc_skel *)object)->createStructurePortDesc(type,name);
	Arts::writeObject(*result,returnCode._base());
}

// freeStructurePortDesc
static void _dispatch_Arts_StructureDesc_07(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::StructurePortDesc_base* _temp_portdesc;
	Arts::readObject(*request,_temp_portdesc);
	Arts::StructurePortDesc portdesc = Arts::StructurePortDesc::_from_base(_temp_portdesc);
	((Arts::StructureDesc_skel *)object)->freeStructurePortDesc(portdesc);
}

// moveStructurePortDesc
static void _dispatch_Arts_StructureDesc_08(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::StructurePortDesc_base* _temp_portdesc;
	Arts::readObject(*request,_temp_portdesc);
	Arts::StructurePortDesc portdesc = Arts::StructurePortDesc::_from_base(_temp_portdesc);
	long newposition = request->readLong();
	((Arts::StructureDesc_skel *)object)->moveStructurePortDesc(portdesc,newposition);
}

// addInheritedInterface
static void _dispatch_Arts_StructureDesc_09(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::string iface;
	request->readString(iface);
	((Arts::StructureDesc_skel *)object)->addInheritedInterface(iface);
}

// removeInheritedInterface
static void _dispatch_Arts_StructureDesc_10(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::string iface;
	request->readString(iface);
	((Arts::StructureDesc_skel *)object)->removeInheritedInterface(iface);
}

// _get_valid
static void _dispatch_Arts_StructureDesc_11(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeBool(((Arts::StructureDesc_skel *)object)->valid());
}

// _get_name
static void _dispatch_Arts_StructureDesc_12(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeString(((Arts::StructureDesc_skel *)object)->name());
}

// _set_name
static void _dispatch_Arts_StructureDesc_13(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::string newValue;
	request->readString(newValue);
	((Arts::StructureDesc_skel *)object)->name(newValue);
}

// _get_modules
static void _dispatch_Arts_StructureDesc_14(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<Arts::ModuleDesc> *_returnCode = ((Arts::StructureDesc_skel *)object)->modules();
	Arts::writeObjectSeq(*result,*_returnCode);
	delete _returnCode;
}

// _get_ports
static void _dispatch_Arts_StructureDesc_15(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<Arts::StructurePortDesc> *_returnCode = ((Arts::StructureDesc_skel *)object)->ports();
	Arts::writeObjectSeq(*result,*_returnCode);
	delete _returnCode;
}

// _get_inheritedInterfaces
static void _dispatch_Arts_StructureDesc_16(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	std::vector<std::string> *_returnCode = ((Arts::StructureDesc_skel *)object)->inheritedInterfaces();
	result->writeStringSeq(*_returnCode);
	delete _returnCode;
}

// _get_externalInterface
static void _dispatch_Arts_StructureDesc_17(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	Arts::ModuleInfo _returnCode = ((Arts::StructureDesc_skel *)object)->externalInterface();
	_returnCode.writeType(*result);
}

void Arts::StructureDesc_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:000000096f627461696e494400000000056c6f6e67000000000200"
        "000000000000000000000b73617665546f4c69737400000000082a737472696e67"
        "000000000200000000000000000000000d6c6f616446726f6d4c69737400000000"
        "05766f6964000000000200000001000000082a737472696e6700000000056c6973"
        "7400000000000000000000000006636c6561720000000005766f69640000000002"
        "0000000000000000000000116372656174654d6f64756c65446573630000000011"
        "417274733a3a4d6f64756c65446573630000000002000000010000001141727473"
        "3a3a4d6f64756c65496e666f0000000005696e666f000000000000000000000000"
        "0f667265654d6f64756c65446573630000000005766f6964000000000200000001"
        "00000011417274733a3a4d6f64756c6544657363000000000b6d6f64756c656465"
        "736300000000000000000000000018637265617465537472756374757265506f72"
        "74446573630000000018417274733a3a537472756374757265506f727444657363"
        "0000000002000000020000000f417274733a3a506f727454797065000000000574"
        "797065000000000000000007737472696e6700000000056e616d65000000000000"
        "0000000000001666726565537472756374757265506f7274446573630000000005"
        "766f696400000000020000000100000018417274733a3a53747275637475726550"
        "6f7274446573630000000009706f72746465736300000000000000000000000016"
        "6d6f7665537472756374757265506f7274446573630000000005766f6964000000"
        "00020000000200000018417274733a3a537472756374757265506f727444657363"
        "0000000009706f7274646573630000000000000000056c6f6e67000000000c6e65"
        "77706f736974696f6e00000000000000000000000016616464496e686572697465"
        "64496e746572666163650000000005766f69640000000002000000010000000773"
        "7472696e67000000000669666163650000000000000000000000001972656d6f76"
        "65496e68657269746564496e746572666163650000000005766f69640000000002"
        "0000000100000007737472696e6700000000066966616365000000000000000000"
        "0000000b5f6765745f76616c69640000000008626f6f6c65616e00000000020000"
        "0000000000000000000a5f6765745f6e616d650000000007737472696e67000000"
        "000200000000000000000000000a5f7365745f6e616d650000000005766f696400"
        "000000020000000100000007737472696e6700000000096e657756616c75650000"
        "000000000000000000000d5f6765745f6d6f64756c657300000000122a41727473"
        "3a3a4d6f64756c6544657363000000000200000000000000000000000b5f676574"
        "5f706f72747300000000192a417274733a3a537472756374757265506f72744465"
        "736300000000020000000000000000000000195f6765745f696e68657269746564"
        "496e746572666163657300000000082a737472696e670000000002000000000000"
        "0000000000175f6765745f65787465726e616c496e746572666163650000000011"
        "417274733a3a4d6f64756c65496e666f00000000020000000000000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_StructureDesc_00,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_01,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_02,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_03,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_04,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_05,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_06,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_07,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_08,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_09,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_10,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_11,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_12,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_13,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_14,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_15,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_16,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureDesc_17,this,Arts::MethodDef(m));
}

Arts::StructureDesc_skel::StructureDesc_skel()
{
}

Arts::Object_base* Arts::StructureDesc::_Creator() {
	return Arts::StructureDesc_base::_create();
}

unsigned long Arts::StructureDesc_base::_IID = Arts::MCOPUtils::makeIID("Arts::StructureDesc");

Arts::StructurePortDesc_base *Arts::StructurePortDesc_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::StructurePortDesc_base *castedObject = (Arts::StructurePortDesc_base *)skel->_cast(Arts::StructurePortDesc_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::StructurePortDesc_base *Arts::StructurePortDesc_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::StructurePortDesc_base::_fromReference(r,true);
	return 0;
}

Arts::StructurePortDesc_base *Arts::StructurePortDesc_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::StructurePortDesc_base *castedObject = (Arts::StructurePortDesc_base *)object._base()->_cast(Arts::StructurePortDesc_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::StructurePortDesc_base *Arts::StructurePortDesc_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::StructurePortDesc_base *result;
	result = (Arts::StructurePortDesc_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::StructurePortDesc");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::StructurePortDesc_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::StructurePortDesc")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::StructurePortDesc_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::StructurePortDesc_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::StructurePortDesc_base::_cast(unsigned long iid)
{
	if(iid == Arts::StructurePortDesc_base::_IID) return (Arts::StructurePortDesc_base *)this;
	if(iid == Arts::PortDesc_base::_IID) return (Arts::PortDesc_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::StructurePortDesc_stub::StructurePortDesc_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::StructurePortDesc_stub::StructurePortDesc_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

void Arts::StructurePortDesc_stub::constructor(Arts::StructureDesc parent, const std::string& name, const Arts::PortType& type)
{
	long methodID = _lookupMethodFast("method:0000000c636f6e7374727563746f720000000005766f696400000000020000000300000014417274733a3a537472756374757265446573630000000007706172656e74000000000000000007737472696e6700000000056e616d6500000000000000000f417274733a3a506f727454797065000000000574797065000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,parent._base());
	request->writeString(name);
	type.writeType(*request);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

bool Arts::StructurePortDesc_stub::moveTo(long x, long y)
{
	long methodID = _lookupMethodFast("method:000000076d6f7665546f0000000008626f6f6c65616e000000000200000002000000056c6f6e670000000002780000000000000000056c6f6e67000000000279000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeLong(x);
	request->writeLong(y);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return false; // error occurred
	bool returnCode = result->readBool();
	delete result;
	return returnCode;
}

void Arts::StructurePortDesc_stub::lowerPosition()
{
	long methodID = _lookupMethodFast("method:0000000e6c6f776572506f736974696f6e0000000005766f696400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructurePortDesc_stub::raisePosition()
{
	long methodID = _lookupMethodFast("method:0000000e7261697365506f736974696f6e0000000005766f696400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructurePortDesc_stub::rename(const std::string& newname)
{
	long methodID = _lookupMethodFast("method:0000000772656e616d650000000005766f696400000000020000000100000007737472696e6700000000086e65776e616d65000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(newname);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::StructurePortDesc_stub::internalSetPosition(long position)
{
	long methodID = _lookupMethodFast("method:00000014696e7465726e616c536574506f736974696f6e0000000005766f6964000000000200000001000000056c6f6e670000000009706f736974696f6e000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeLong(position);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

long Arts::StructurePortDesc_stub::x()
{
	long methodID = _lookupMethodFast("method:000000075f6765745f7800000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

long Arts::StructurePortDesc_stub::y()
{
	long methodID = _lookupMethodFast("method:000000075f6765745f7900000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

long Arts::StructurePortDesc_stub::position()
{
	long methodID = _lookupMethodFast("method:0000000e5f6765745f706f736974696f6e00000000056c6f6e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return 0; // error occurred
	long returnCode = result->readLong();
	delete result;
	return returnCode;
}

Arts::StructureDesc Arts::StructurePortDesc_stub::parentStructure()
{
	long methodID = _lookupMethodFast("method:000000155f6765745f706172656e745374727563747572650000000014417274733a3a5374727563747572654465736300000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::StructureDesc::null();
	Arts::StructureDesc_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::StructureDesc::_from_base(returnCode);
}

std::string Arts::StructurePortDesc_stub::inheritedInterface()
{
	long methodID = _lookupMethodFast("method:000000185f6765745f696e68657269746564496e746572666163650000000007737472696e6700000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return""; // error occurred
	std::string returnCode;
	result->readString(returnCode);
	delete result;
	return returnCode;
}

void Arts::StructurePortDesc_stub::inheritedInterface(const std::string& newValue)
{
	long methodID = _lookupMethodFast("method:000000185f7365745f696e68657269746564496e746572666163650000000005766f696400000000020000000100000007737472696e6700000000096e657756616c7565000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(newValue);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

std::string Arts::StructurePortDesc_skel::_interfaceName()
{
	return "Arts::StructurePortDesc";
}

bool Arts::StructurePortDesc_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::StructurePortDesc") return true;
	if (interfacename == "Arts::PortDesc") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::StructurePortDesc_skel::_interfaceNameSkel()
{
	return "Arts::StructurePortDesc";
}

// constructor
static void _dispatch_Arts_StructurePortDesc_00(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::StructureDesc_base* _temp_parent;
	Arts::readObject(*request,_temp_parent);
	Arts::StructureDesc parent = Arts::StructureDesc::_from_base(_temp_parent);
	std::string name;
	request->readString(name);
	Arts::PortType type(*request);
	((Arts::StructurePortDesc_skel *)object)->constructor(parent,name,type);
}

// moveTo
static void _dispatch_Arts_StructurePortDesc_01(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	long x = request->readLong();
	long y = request->readLong();
	result->writeBool(((Arts::StructurePortDesc_skel *)object)->moveTo(x,y));
}

// lowerPosition
static void _dispatch_Arts_StructurePortDesc_02(void *object, Arts::Buffer *, Arts::Buffer *)
{
	((Arts::StructurePortDesc_skel *)object)->lowerPosition();
}

// raisePosition
static void _dispatch_Arts_StructurePortDesc_03(void *object, Arts::Buffer *, Arts::Buffer *)
{
	((Arts::StructurePortDesc_skel *)object)->raisePosition();
}

// rename
static void _dispatch_Arts_StructurePortDesc_04(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::string newname;
	request->readString(newname);
	((Arts::StructurePortDesc_skel *)object)->rename(newname);
}

// internalSetPosition
static void _dispatch_Arts_StructurePortDesc_05(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	long position = request->readLong();
	((Arts::StructurePortDesc_skel *)object)->internalSetPosition(position);
}

// _get_x
static void _dispatch_Arts_StructurePortDesc_06(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::StructurePortDesc_skel *)object)->x());
}

// _get_y
static void _dispatch_Arts_StructurePortDesc_07(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::StructurePortDesc_skel *)object)->y());
}

// _get_position
static void _dispatch_Arts_StructurePortDesc_08(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeLong(((Arts::StructurePortDesc_skel *)object)->position());
}

// _get_parentStructure
static void _dispatch_Arts_StructurePortDesc_09(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	Arts::StructureDesc returnCode = ((Arts::StructurePortDesc_skel *)object)->parentStructure();
	Arts::writeObject(*result,returnCode._base());
}

// _get_inheritedInterface
static void _dispatch_Arts_StructurePortDesc_10(void *object, Arts::Buffer *, Arts::Buffer *result)
{
	result->writeString(((Arts::StructurePortDesc_skel *)object)->inheritedInterface());
}

// _set_inheritedInterface
static void _dispatch_Arts_StructurePortDesc_11(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	std::string newValue;
	request->readString(newValue);
	((Arts::StructurePortDesc_skel *)object)->inheritedInterface(newValue);
}

void Arts::StructurePortDesc_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:0000000c636f6e7374727563746f720000000005766f6964000000"
        "00020000000300000014417274733a3a5374727563747572654465736300000000"
        "07706172656e74000000000000000007737472696e6700000000056e616d650000"
        "0000000000000f417274733a3a506f727454797065000000000574797065000000"
        "000000000000000000076d6f7665546f0000000008626f6f6c65616e0000000002"
        "00000002000000056c6f6e670000000002780000000000000000056c6f6e670000"
        "000002790000000000000000000000000e6c6f776572506f736974696f6e000000"
        "0005766f6964000000000200000000000000000000000e7261697365506f736974"
        "696f6e0000000005766f6964000000000200000000000000000000000772656e61"
        "6d650000000005766f696400000000020000000100000007737472696e67000000"
        "00086e65776e616d6500000000000000000000000014696e7465726e616c536574"
        "506f736974696f6e0000000005766f6964000000000200000001000000056c6f6e"
        "670000000009706f736974696f6e000000000000000000000000075f6765745f78"
        "00000000056c6f6e6700000000020000000000000000000000075f6765745f7900"
        "000000056c6f6e67000000000200000000000000000000000e5f6765745f706f73"
        "6974696f6e00000000056c6f6e6700000000020000000000000000000000155f67"
        "65745f706172656e745374727563747572650000000014417274733a3a53747275"
        "63747572654465736300000000020000000000000000000000185f6765745f696e"
        "68657269746564496e746572666163650000000007737472696e67000000000200"
        "00000000000000000000185f7365745f696e68657269746564496e746572666163"
        "650000000005766f696400000000020000000100000007737472696e6700000000"
        "096e657756616c7565000000000000000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_StructurePortDesc_00,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_01,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_02,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_03,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_04,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_05,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_06,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_07,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_08,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_09,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_10,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructurePortDesc_11,this,Arts::MethodDef(m));
	Arts::PortDesc_skel::_buildMethodTable();
}

Arts::StructurePortDesc_skel::StructurePortDesc_skel()
{
}

Arts::Object_base* Arts::StructurePortDesc::_Creator() {
	return Arts::StructurePortDesc_base::_create();
}

unsigned long Arts::StructurePortDesc_base::_IID = Arts::MCOPUtils::makeIID("Arts::StructurePortDesc");

Arts::ObjectFactory_base *Arts::ObjectFactory_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::ObjectFactory_base *castedObject = (Arts::ObjectFactory_base *)skel->_cast(Arts::ObjectFactory_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::ObjectFactory_base *Arts::ObjectFactory_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::ObjectFactory_base::_fromReference(r,true);
	return 0;
}

Arts::ObjectFactory_base *Arts::ObjectFactory_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::ObjectFactory_base *castedObject = (Arts::ObjectFactory_base *)object._base()->_cast(Arts::ObjectFactory_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::ObjectFactory_base *Arts::ObjectFactory_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::ObjectFactory_base *result;
	result = (Arts::ObjectFactory_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::ObjectFactory");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::ObjectFactory_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::ObjectFactory")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::ObjectFactory_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::ObjectFactory_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::ObjectFactory_base::_cast(unsigned long iid)
{
	if(iid == Arts::ObjectFactory_base::_IID) return (Arts::ObjectFactory_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::ObjectFactory_stub::ObjectFactory_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::ObjectFactory_stub::ObjectFactory_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

Arts::Object Arts::ObjectFactory_stub::createObject(const std::string& name)
{
	long methodID = _lookupMethodFast("method:0000000d6372656174654f626a65637400000000076f626a65637400000000020000000100000007737472696e6700000000056e616d65000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->writeString(name);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::Object::null();
	Arts::Object_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::Object::_from_base(returnCode);
}

std::string Arts::ObjectFactory_skel::_interfaceName()
{
	return "Arts::ObjectFactory";
}

bool Arts::ObjectFactory_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::ObjectFactory") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::ObjectFactory_skel::_interfaceNameSkel()
{
	return "Arts::ObjectFactory";
}

// createObject
static void _dispatch_Arts_ObjectFactory_00(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	std::string name;
	request->readString(name);
	Arts::Object returnCode = ((Arts::ObjectFactory_skel *)object)->createObject(name);
	Arts::writeObject(*result,returnCode._base());
}

void Arts::ObjectFactory_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:0000000d6372656174654f626a65637400000000076f626a656374"
        "00000000020000000100000007737472696e6700000000056e616d650000000000"
        "00000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_ObjectFactory_00,this,Arts::MethodDef(m));
}

Arts::ObjectFactory_skel::ObjectFactory_skel()
{
}

Arts::Object_base* Arts::ObjectFactory::_Creator() {
	return Arts::ObjectFactory_base::_create();
}

unsigned long Arts::ObjectFactory_base::_IID = Arts::MCOPUtils::makeIID("Arts::ObjectFactory");

Arts::LocalFactory_base *Arts::LocalFactory_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::LocalFactory_base *castedObject = (Arts::LocalFactory_base *)skel->_cast(Arts::LocalFactory_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::LocalFactory_base *Arts::LocalFactory_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::LocalFactory_base::_fromReference(r,true);
	return 0;
}

Arts::LocalFactory_base *Arts::LocalFactory_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::LocalFactory_base *castedObject = (Arts::LocalFactory_base *)object._base()->_cast(Arts::LocalFactory_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::LocalFactory_base *Arts::LocalFactory_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::LocalFactory_base *result;
	result = (Arts::LocalFactory_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::LocalFactory");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::LocalFactory_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::LocalFactory")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::LocalFactory_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::LocalFactory_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::LocalFactory_base::_cast(unsigned long iid)
{
	if(iid == Arts::LocalFactory_base::_IID) return (Arts::LocalFactory_base *)this;
	if(iid == Arts::ObjectFactory_base::_IID) return (Arts::ObjectFactory_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::LocalFactory_stub::LocalFactory_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::LocalFactory_stub::LocalFactory_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

std::string Arts::LocalFactory_skel::_interfaceName()
{
	return "Arts::LocalFactory";
}

bool Arts::LocalFactory_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::LocalFactory") return true;
	if (interfacename == "Arts::ObjectFactory") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::LocalFactory_skel::_interfaceNameSkel()
{
	return "Arts::LocalFactory";
}

void Arts::LocalFactory_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:",
		"MethodTable"
	);
	Arts::ObjectFactory_skel::_buildMethodTable();
}

Arts::LocalFactory_skel::LocalFactory_skel()
{
}

Arts::Object_base* Arts::LocalFactory::_Creator() {
	return Arts::LocalFactory_base::_create();
}

unsigned long Arts::LocalFactory_base::_IID = Arts::MCOPUtils::makeIID("Arts::LocalFactory");

Arts::StructureBuilder_base *Arts::StructureBuilder_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::StructureBuilder_base *castedObject = (Arts::StructureBuilder_base *)skel->_cast(Arts::StructureBuilder_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::StructureBuilder_base *Arts::StructureBuilder_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::StructureBuilder_base::_fromReference(r,true);
	return 0;
}

Arts::StructureBuilder_base *Arts::StructureBuilder_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::StructureBuilder_base *castedObject = (Arts::StructureBuilder_base *)object._base()->_cast(Arts::StructureBuilder_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::StructureBuilder_base *Arts::StructureBuilder_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::StructureBuilder_base *result;
	result = (Arts::StructureBuilder_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::StructureBuilder");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::StructureBuilder_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::StructureBuilder")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::StructureBuilder_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::StructureBuilder_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::StructureBuilder_base::_cast(unsigned long iid)
{
	if(iid == Arts::StructureBuilder_base::_IID) return (Arts::StructureBuilder_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::StructureBuilder_stub::StructureBuilder_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::StructureBuilder_stub::StructureBuilder_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

void Arts::StructureBuilder_stub::addFactory(Arts::ObjectFactory factory)
{
	long methodID = _lookupMethodFast("method:0000000b616464466163746f72790000000005766f696400000000020000000100000014417274733a3a4f626a656374466163746f72790000000008666163746f7279000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,factory._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

Arts::Object Arts::StructureBuilder_stub::createObject(Arts::StructureDesc structure)
{
	long methodID = _lookupMethodFast("method:0000000d6372656174654f626a65637400000000076f626a65637400000000020000000100000014417274733a3a53747275637475726544657363000000000a737472756374757265000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,structure._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if (!result) return Arts::Object::null();
	Arts::Object_base* returnCode;
	Arts::readObject(*result,returnCode);
	delete result;
	return Arts::Object::_from_base(returnCode);
}

Arts::ModuleDef Arts::StructureBuilder_stub::createTypeInfo(Arts::StructureDesc structure)
{
	long methodID = _lookupMethodFast("method:0000000f63726561746554797065496e666f0000000010417274733a3a4d6f64756c6544656600000000020000000100000014417274733a3a53747275637475726544657363000000000a737472756374757265000000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	Arts::writeObject(*request,structure._base());
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(!result) return Arts::ModuleDef(); // error occurred
	Arts::ModuleDef _returnCode(*result);
	delete result;
	return _returnCode;
}

std::string Arts::StructureBuilder_skel::_interfaceName()
{
	return "Arts::StructureBuilder";
}

bool Arts::StructureBuilder_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::StructureBuilder") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::StructureBuilder_skel::_interfaceNameSkel()
{
	return "Arts::StructureBuilder";
}

// addFactory
static void _dispatch_Arts_StructureBuilder_00(void *object, Arts::Buffer *request, Arts::Buffer *)
{
	Arts::ObjectFactory_base* _temp_factory;
	Arts::readObject(*request,_temp_factory);
	Arts::ObjectFactory factory = Arts::ObjectFactory::_from_base(_temp_factory);
	((Arts::StructureBuilder_skel *)object)->addFactory(factory);
}

// createObject
static void _dispatch_Arts_StructureBuilder_01(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	Arts::StructureDesc_base* _temp_structure;
	Arts::readObject(*request,_temp_structure);
	Arts::StructureDesc structure = Arts::StructureDesc::_from_base(_temp_structure);
	Arts::Object returnCode = ((Arts::StructureBuilder_skel *)object)->createObject(structure);
	Arts::writeObject(*result,returnCode._base());
}

// createTypeInfo
static void _dispatch_Arts_StructureBuilder_02(void *object, Arts::Buffer *request, Arts::Buffer *result)
{
	Arts::StructureDesc_base* _temp_structure;
	Arts::readObject(*request,_temp_structure);
	Arts::StructureDesc structure = Arts::StructureDesc::_from_base(_temp_structure);
	Arts::ModuleDef _returnCode = ((Arts::StructureBuilder_skel *)object)->createTypeInfo(structure);
	_returnCode.writeType(*result);
}

void Arts::StructureBuilder_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:0000000b616464466163746f72790000000005766f696400000000"
        "020000000100000014417274733a3a4f626a656374466163746f72790000000008"
        "666163746f72790000000000000000000000000d6372656174654f626a65637400"
        "000000076f626a65637400000000020000000100000014417274733a3a53747275"
        "637475726544657363000000000a73747275637475726500000000000000000000"
        "00000f63726561746554797065496e666f0000000010417274733a3a4d6f64756c"
        "6544656600000000020000000100000014417274733a3a53747275637475726544"
        "657363000000000a737472756374757265000000000000000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_StructureBuilder_00,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureBuilder_01,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_StructureBuilder_02,this,Arts::MethodDef(m));
}

Arts::StructureBuilder_skel::StructureBuilder_skel()
{
}

Arts::Object_base* Arts::StructureBuilder::_Creator() {
	return Arts::StructureBuilder_base::_create();
}

unsigned long Arts::StructureBuilder_base::_IID = Arts::MCOPUtils::makeIID("Arts::StructureBuilder");

Arts::ArtsBuilderLoader_base *Arts::ArtsBuilderLoader_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::ArtsBuilderLoader_base *castedObject = (Arts::ArtsBuilderLoader_base *)skel->_cast(Arts::ArtsBuilderLoader_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::ArtsBuilderLoader_base *Arts::ArtsBuilderLoader_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::ArtsBuilderLoader_base::_fromReference(r,true);
	return 0;
}

Arts::ArtsBuilderLoader_base *Arts::ArtsBuilderLoader_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::ArtsBuilderLoader_base *castedObject = (Arts::ArtsBuilderLoader_base *)object._base()->_cast(Arts::ArtsBuilderLoader_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::ArtsBuilderLoader_base *Arts::ArtsBuilderLoader_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::ArtsBuilderLoader_base *result;
	result = (Arts::ArtsBuilderLoader_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::ArtsBuilderLoader");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::ArtsBuilderLoader_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::ArtsBuilderLoader")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::ArtsBuilderLoader_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::ArtsBuilderLoader_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::ArtsBuilderLoader_base::_cast(unsigned long iid)
{
	if(iid == Arts::ArtsBuilderLoader_base::_IID) return (Arts::ArtsBuilderLoader_base *)this;
	if(iid == Arts::Loader_base::_IID) return (Arts::Loader_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::ArtsBuilderLoader_stub::ArtsBuilderLoader_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::ArtsBuilderLoader_stub::ArtsBuilderLoader_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

std::string Arts::ArtsBuilderLoader_skel::_interfaceName()
{
	return "Arts::ArtsBuilderLoader";
}

bool Arts::ArtsBuilderLoader_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::ArtsBuilderLoader") return true;
	if (interfacename == "Arts::Loader") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::ArtsBuilderLoader_skel::_interfaceNameSkel()
{
	return "Arts::ArtsBuilderLoader";
}

void Arts::ArtsBuilderLoader_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:",
		"MethodTable"
	);
	Arts::Loader_skel::_buildMethodTable();
}

Arts::ArtsBuilderLoader_skel::ArtsBuilderLoader_skel()
{
}

Arts::Object_base* Arts::ArtsBuilderLoader::_Creator() {
	return Arts::ArtsBuilderLoader_base::_create();
}

unsigned long Arts::ArtsBuilderLoader_base::_IID = Arts::MCOPUtils::makeIID("Arts::ArtsBuilderLoader");

Arts::Structure_base *Arts::Structure_base::_create(const std::string& subClass)
{
	Arts::Object_skel *skel = Arts::ObjectManager::the()->create(subClass);
	assert(skel);
	Arts::Structure_base *castedObject = (Arts::Structure_base *)skel->_cast(Arts::Structure_base::_IID);
	assert(castedObject);
	return castedObject;
}

Arts::Structure_base *Arts::Structure_base::_fromString(const std::string& objectref)
{
	Arts::ObjectReference r;

	if(Arts::Dispatcher::the()->stringToObjectReference(r,objectref))
		return Arts::Structure_base::_fromReference(r,true);
	return 0;
}

Arts::Structure_base *Arts::Structure_base::_fromDynamicCast(const Arts::Object& object)
{
	if(object.isNull()) return 0;

	Arts::Structure_base *castedObject = (Arts::Structure_base *)object._base()->_cast(Arts::Structure_base::_IID);
	if(castedObject) return castedObject->_copy();

	return _fromString(object._toString());
}

Arts::Structure_base *Arts::Structure_base::_fromReference(Arts::ObjectReference r, bool needcopy)
{
	Arts::Structure_base *result;
	result = (Arts::Structure_base *)Arts::Dispatcher::the()->connectObjectLocal(r,"Arts::Structure");
	if(result)
	{
		if(!needcopy)
			result->_cancelCopyRemote();
	}
	else
	{
		Arts::Connection *conn = Arts::Dispatcher::the()->connectObjectRemote(r);
		if(conn)
		{
			result = new Arts::Structure_stub(conn,r.objectID);
			if(needcopy) result->_copyRemote();
			result->_useRemote();
			if (!result->_isCompatibleWith("Arts::Structure")) {
				result->_release();
				return 0;
			}
		}
	}
	return result;
}

std::vector<std::string> Arts::Structure_base::_defaultPortsIn() const {
	std::vector<std::string> ret;
	return ret;
}
std::vector<std::string> Arts::Structure_base::_defaultPortsOut() const {
	std::vector<std::string> ret;
	return ret;
}

void *Arts::Structure_base::_cast(unsigned long iid)
{
	if(iid == Arts::Structure_base::_IID) return (Arts::Structure_base *)this;
	if(iid == Arts::SynthModule_base::_IID) return (Arts::SynthModule_base *)this;
	if(iid == Arts::Object_base::_IID) return (Arts::Object_base *)this;
	return 0;
}

Arts::Structure_stub::Structure_stub()
{
	// constructor for subclasses (don't use directly)
}

Arts::Structure_stub::Structure_stub(Arts::Connection *connection, long objectID)
	: Arts::Object_stub(connection, objectID)
{
	// constructor to create a stub for an object
}

void Arts::Structure_stub::run()
{
	long methodID = _lookupMethodFast("method:0000000472756e0000000005766f696400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

void Arts::Structure_stub::halt()
{
	long methodID = _lookupMethodFast("method:0000000568616c740000000005766f696400000000020000000000000000");
	long requestID;
	Arts::Buffer *request, *result;
	request = Arts::Dispatcher::the()->createRequest(requestID,_objectID,methodID);
	request->patchLength();
	_connection->qSendBuffer(request);

	result = Arts::Dispatcher::the()->waitForResult(requestID,_connection);
	if(result) delete result;
}

std::string Arts::Structure_skel::_interfaceName()
{
	return "Arts::Structure";
}

bool Arts::Structure_skel::_isCompatibleWith(const std::string& interfacename)
{
	if (interfacename == "Arts::Structure") return true;
	if (interfacename == "Arts::SynthModule") return true;
	if (interfacename == "Arts::Object") return true;
	return false;
}

std::string Arts::Structure_skel::_interfaceNameSkel()
{
	return "Arts::Structure";
}

// run
static void _dispatch_Arts_Structure_00(void *object, Arts::Buffer *, Arts::Buffer *)
{
	((Arts::Structure_skel *)object)->run();
}

// halt
static void _dispatch_Arts_Structure_01(void *object, Arts::Buffer *, Arts::Buffer *)
{
	((Arts::Structure_skel *)object)->halt();
}

void Arts::Structure_skel::_buildMethodTable()
{
	Arts::Buffer m;
	m.fromString(
        "MethodTable:0000000472756e0000000005766f69640000000002000000000000"
        "00000000000568616c740000000005766f696400000000020000000000000000",
		"MethodTable"
	);
	_addMethod(_dispatch_Arts_Structure_00,this,Arts::MethodDef(m));
	_addMethod(_dispatch_Arts_Structure_01,this,Arts::MethodDef(m));
	Arts::SynthModule_skel::_buildMethodTable();
}

Arts::Structure_skel::Structure_skel()
{
}

Arts::Object_base* Arts::Structure::_Creator() {
	return Arts::Structure_base::_create();
}

unsigned long Arts::Structure_base::_IID = Arts::MCOPUtils::makeIID("Arts::Structure");

static Arts::IDLFileReg IDLFileReg_artsbuilder("artsbuilder",
    "IDLFile:00000001000000000200000014417274733a3a506f7274446972656374696f"
    "6e000000000200000006696e707574000000000000000000000000076f757470757400"
    "00000001000000000000000000000013417274733a3a506f7274436f6e6e5479706500"
    "000000030000000c636f6e6e5f73747265616d0000000000000000000000000b636f6e"
    "6e5f6576656e740000000001000000000000000e636f6e6e5f70726f70657274790000"
    "0000020000000000000000000000020000000f417274733a3a506f7274547970650000"
    "00000400000014417274733a3a506f7274446972656374696f6e000000000a64697265"
    "6374696f6e000000000000000007737472696e67000000000964617461547970650000"
    "00000000000013417274733a3a506f7274436f6e6e547970650000000009636f6e6e54"
    "797065000000000000000008626f6f6c65616e000000000c69734d756c7469506f7274"
    "00000000000000000000000011417274733a3a4d6f64756c65496e666f000000000500"
    "000007737472696e6700000000056e616d650000000000000000102a417274733a3a50"
    "6f7274547970650000000006706f7274730000000000000000082a737472696e670000"
    "00000a706f72746e616d6573000000000000000008626f6f6c65616e000000000c6973"
    "496e74657266616365000000000000000008626f6f6c65616e000000000c6973537472"
    "756374757265000000000000000000000000090000000f417274733a3a506f72744465"
    "73630000000000000000080000000c636f6e7374727563746f720000000005766f6964"
    "00000000020000000300000011417274733a3a4d6f64756c6544657363000000000770"
    "6172656e74000000000000000007737472696e6700000000056e616d65000000000000"
    "00000f417274733a3a506f727454797065000000000574797065000000000000000000"
    "0000000a636f6e6e656374546f0000000008626f6f6c65616e00000000020000000100"
    "00000f417274733a3a506f7274446573630000000005706f7274000000000000000000"
    "0000000f646973636f6e6e65637446726f6d0000000005766f69640000000002000000"
    "010000000f417274733a3a506f7274446573630000000005706f727400000000000000"
    "00000000000e646973636f6e6e656374416c6c0000000005766f696400000000020000"
    "0000000000000000000b73617665546f4c69737400000000082a737472696e67000000"
    "000200000000000000000000000d6c6f616446726f6d4c6973740000000005766f6964"
    "000000000200000001000000082a737472696e6700000000056c697374000000000000"
    "00000000000015696e7465726e616c436f6e6e656374496e7075740000000005766f69"
    "640000000002000000010000000f417274733a3a506f7274446573630000000005706f"
    "727400000000000000000000000012696e7465726e616c5265436f6e6e656374000000"
    "0005766f6964000000000200000001000000102a417274733a3a506f72744465736300"
    "00000009616c6c706f7274730000000000000000000000000b00000003494400000000"
    "056c6f6e6700000000120000000000000007706172656e740000000011417274733a3a"
    "4d6f64756c6544657363000000001200000000000000056e616d650000000007737472"
    "696e670000000012000000000000000574797065000000000f417274733a3a506f7274"
    "547970650000000012000000000000000c6973436f6e6e65637465640000000008626f"
    "6f6c65616e0000000012000000000000000968617356616c75650000000008626f6f6c"
    "65616e0000000013000000000000000c636f6e6e656374696f6e7300000000102a4172"
    "74733a3a506f7274446573630000000012000000000000000b666c6f617456616c7565"
    "0000000006666c6f61740000000013000000000000000c737472696e6756616c756500"
    "00000007737472696e670000000013000000000000000676616c7565000000000a4172"
    "74733a3a416e790000000013000000000000000e696e7465726e616c4f6c6449440000"
    "0000056c6f6e67000000001200000000000000000000000000000011417274733a3a4d"
    "6f64756c65446573630000000000000000050000000c636f6e7374727563746f720000"
    "000005766f696400000000020000000200000014417274733a3a537472756374757265"
    "446573630000000007706172656e74000000000000000011417274733a3a4d6f64756c"
    "65496e666f0000000005696e666f000000000000000000000000076d6f7665546f0000"
    "000008626f6f6c65616e000000000200000002000000056c6f6e670000000002780000"
    "000000000000056c6f6e670000000002790000000000000000000000000966696e6450"
    "6f7274000000000f417274733a3a506f72744465736300000000020000000100000007"
    "737472696e6700000000056e616d650000000000000000000000000b73617665546f4c"
    "69737400000000082a737472696e67000000000200000000000000000000000d6c6f61"
    "6446726f6d4c6973740000000005766f6964000000000200000001000000082a737472"
    "696e6700000000056c6973740000000000000000000000000a00000003494400000000"
    "056c6f6e6700000000120000000000000007706172656e740000000014417274733a3a"
    "53747275637475726544657363000000001200000000000000056e616d650000000007"
    "737472696e6700000000120000000000000006706f72747300000000102a417274733a"
    "3a506f727444657363000000001200000000000000027800000000056c6f6e67000000"
    "001200000000000000027900000000056c6f6e67000000001200000000000000067769"
    "64746800000000056c6f6e670000000012000000000000000768656967687400000000"
    "056c6f6e670000000012000000000000000c6973496e74657266616365000000000862"
    "6f6f6c65616e0000000012000000000000000c69735374727563747572650000000008"
    "626f6f6c65616e000000001200000000000000000000000000000014417274733a3a53"
    "74727563747572654465736300000000000000000b000000096f627461696e49440000"
    "0000056c6f6e67000000000200000000000000000000000b73617665546f4c69737400"
    "000000082a737472696e67000000000200000000000000000000000d6c6f616446726f"
    "6d4c6973740000000005766f6964000000000200000001000000082a737472696e6700"
    "000000056c69737400000000000000000000000006636c6561720000000005766f6964"
    "00000000020000000000000000000000116372656174654d6f64756c65446573630000"
    "000011417274733a3a4d6f64756c654465736300000000020000000100000011417274"
    "733a3a4d6f64756c65496e666f0000000005696e666f0000000000000000000000000f"
    "667265654d6f64756c65446573630000000005766f6964000000000200000001000000"
    "11417274733a3a4d6f64756c6544657363000000000b6d6f64756c6564657363000000"
    "00000000000000000018637265617465537472756374757265506f7274446573630000"
    "000018417274733a3a537472756374757265506f727444657363000000000200000002"
    "0000000f417274733a3a506f7274547970650000000005747970650000000000000000"
    "07737472696e6700000000056e616d6500000000000000000000000016667265655374"
    "72756374757265506f7274446573630000000005766f69640000000002000000010000"
    "0018417274733a3a537472756374757265506f7274446573630000000009706f727464"
    "657363000000000000000000000000166d6f7665537472756374757265506f72744465"
    "73630000000005766f696400000000020000000200000018417274733a3a5374727563"
    "74757265506f7274446573630000000009706f7274646573630000000000000000056c"
    "6f6e67000000000c6e6577706f736974696f6e00000000000000000000000016616464"
    "496e68657269746564496e746572666163650000000005766f69640000000002000000"
    "0100000007737472696e67000000000669666163650000000000000000000000001972"
    "656d6f7665496e68657269746564496e746572666163650000000005766f6964000000"
    "00020000000100000007737472696e6700000000066966616365000000000000000000"
    "000000060000000676616c69640000000008626f6f6c65616e00000000120000000000"
    "0000056e616d650000000007737472696e67000000001300000000000000086d6f6475"
    "6c657300000000122a417274733a3a4d6f64756c654465736300000000120000000000"
    "000006706f72747300000000192a417274733a3a537472756374757265506f72744465"
    "736300000000120000000000000014696e68657269746564496e746572666163657300"
    "000000082a737472696e670000000012000000000000001265787465726e616c496e74"
    "6572666163650000000011417274733a3a4d6f64756c65496e666f0000000012000000"
    "00000000000000000000000018417274733a3a537472756374757265506f7274446573"
    "6300000000010000000f417274733a3a506f72744465736300000000060000000c636f"
    "6e7374727563746f720000000005766f69640000000002000000030000001441727473"
    "3a3a537472756374757265446573630000000007706172656e74000000000000000007"
    "737472696e6700000000056e616d6500000000000000000f417274733a3a506f727454"
    "797065000000000574797065000000000000000000000000076d6f7665546f00000000"
    "08626f6f6c65616e000000000200000002000000056c6f6e6700000000027800000000"
    "00000000056c6f6e670000000002790000000000000000000000000e6c6f776572506f"
    "736974696f6e0000000005766f6964000000000200000000000000000000000e726169"
    "7365506f736974696f6e0000000005766f696400000000020000000000000000000000"
    "0772656e616d650000000005766f696400000000020000000100000007737472696e67"
    "00000000086e65776e616d6500000000000000000000000014696e7465726e616c5365"
    "74506f736974696f6e0000000005766f6964000000000200000001000000056c6f6e67"
    "0000000009706f736974696f6e00000000000000000000000005000000027800000000"
    "056c6f6e67000000001200000000000000027900000000056c6f6e6700000000120000"
    "000000000009706f736974696f6e00000000056c6f6e67000000001200000000000000"
    "10706172656e745374727563747572650000000014417274733a3a5374727563747572"
    "654465736300000000120000000000000013696e68657269746564496e746572666163"
    "650000000007737472696e670000000013000000000000000000000000000000144172"
    "74733a3a4f626a656374466163746f72790000000000000000010000000d6372656174"
    "654f626a65637400000000076f626a6563740000000002000000010000000773747269"
    "6e6700000000056e616d65000000000000000000000000000000000000000000000000"
    "13417274733a3a4c6f63616c466163746f7279000000000100000014417274733a3a4f"
    "626a656374466163746f72790000000000000000000000000000000000000000174172"
    "74733a3a5374727563747572654275696c6465720000000000000000030000000b6164"
    "64466163746f72790000000005766f696400000000020000000100000014417274733a"
    "3a4f626a656374466163746f72790000000008666163746f7279000000000000000000"
    "0000000d6372656174654f626a65637400000000076f626a6563740000000002000000"
    "0100000014417274733a3a53747275637475726544657363000000000a737472756374"
    "7572650000000000000000000000000f63726561746554797065496e666f0000000010"
    "417274733a3a4d6f64756c6544656600000000020000000100000014417274733a3a53"
    "747275637475726544657363000000000a737472756374757265000000000000000000"
    "00000000000000000000000000000018417274733a3a417274734275696c6465724c6f"
    "6164657200000000010000000d417274733a3a4c6f6164657200000000000000000000"
    "0000000000000000000010417274733a3a537472756374757265000000000100000012"
    "417274733a3a53796e74684d6f64756c6500000000020000000472756e000000000576"
    "6f6964000000000200000000000000000000000568616c740000000005766f69640000"
    "000002000000000000000000000000000000000000000000000000"
);
