/// <summary>関数を登録します。</summary> /// <param name="signature">関数のフルシグネチャ</param> /// <param name="method">実際の関数</param> public void AdvertiseMethod(string signature, QiObjectMethod method) { var qiMethod = new QiMethod(method); uint id = QiApiObjectBuilder.AdvertiseMethod( this, signature, qiMethod.UnmanagedMethod, IntPtr.Zero ); _advertisedMethods[id] = qiMethod; }
/// <summary> /// 既定の方法でインスタンスを生成します。 /// </summary> /// <returns>生成されたインスタンス</returns> public static QiObjectBuilder Create() => QiApiObjectBuilder.Create();
/// <summary> /// 登録情報に基づき、オブジェクトを生成します。 /// </summary> /// <returns>生成されたオブジェクト</returns> public QiObject BuildObject() => QiApiObjectBuilder.BuildObject(this);
/// <summary> /// プロパティを登録します。 /// </summary> /// <param name="name">プロパティ名</param> /// <param name="signature">プロパティのシグネチャ</param> /// <returns>プロパティに割り振ったID</returns> public uint AdvertiseProperty(string name, string signature) => QiApiObjectBuilder.AdvertiseProperty(this, name, signature);
/// <summary>インスタンスを破棄します。</summary> public void Destroy() => QiApiObjectBuilder.DestroyBuilder(this);