Program Listing for File repository.idl#
↰ Return to documentation for file (interfaces\repository.idl)
#include "core.idl"
#include "module.idl"
module sdv
{
module core
{
typedef uint64 TObjectID;
interface IObjectAccess
{
IInterfaceAccess GetObject(in u8string ssObjectName);
IInterfaceAccess GetObjectByID(in TObjectID tObjectID);
};
enum EObjectInfoFlags : uint32
{
object_foreign = 0x00000100,
object_controlled = 0x00008000,
object_isolated = 0x00010000,
};
struct SObjectInfo
{
TObjectID tObjectID;
TModuleID tModuleID;
SClassInfo sClassInfo;
u8string ssObjectName;
u8string ssObjectConfig;
uint32 uiFlags;
// TODO... Proxy/Stub objects (tObjectID) and Process (tProcessID) information and host information.
};
interface IRepositoryInfo
{
SClassInfo FindClass(in u8string ssClassName) const;
sequence<SObjectInfo> GetObjectList() const;
SObjectInfo GetObjectInfo(in TObjectID tObjectID) const;
SObjectInfo FindObject(in u8string ssObjectName) const;
};
interface IRepositoryControl
{
TObjectID CreateObject(in u8string ssClassName, in u8string ssObjectName, in u8string ssObjectConfig);
TObjectID CreateObjectFromModule(in TModuleID tModuleID, in u8string ssClassName, in u8string ssObjectName,
in u8string ssObjectConfig);
boolean DestroyObject(in u8string ssObjectName);
};
interface IRepositoryUtilityCreate
{
IInterfaceAccess CreateUtility(in u8string ssClassName, in u8string ssObjectConfig);
};
local interface IRepositoryMarshallCreate
{
IInterfaceAccess CreateProxyObject(in interface_id id);
IInterfaceAccess CreateStubObject(in interface_id id);
};
interface IRegisterForeignObject
{
TObjectID RegisterObject(in IInterfaceAccess pObjectIfc, in u8string ssObjectName);
};
interface ILinkCoreRepository
{
void LinkCoreRepository(in IInterfaceAccess pCoreRepository);
void UnlinkCoreRepository();
};
}; // module core
}; // module sdv