Amazon Best VPN GoSearch

فاویکون OnWorks

perlmroapi - آنلاین در ابر

اجرای perlmroapi در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور perlmroapi است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


perlmroapi - رابط پلاگین وضوح روش پرل

شرح


از Perl 5.10.1 یک رابط جدید برای وصل کردن و استفاده از دستورات وضوح روش وجود دارد
غیر از پیش فرض (جستجوی اول با عمق خطی). دستور تفکیک روش C3 اضافه شد
در 5.10.0 مجدداً به عنوان یک پلاگین، بدون تغییر رابط Perl-space آن، پیاده سازی شده است.

هر افزونه باید با ارائه ساختار زیر خود را ثبت کند

ساختار mro_alg {
AV *(*Resolve)(pTHX_ HV *stash, U32 level);
const char *name;
طول U16؛
پرچم های U16 کیلویی؛
هش U32;
};

و فراخوانی "Perl_mro_register":

Perl_mro_register(aTHX_ &my_mro_alg);

تصمیم
به تابع خطی سازی اشاره کنید که در زیر توضیح داده شده است.

نام
نام MRO، در ISO-8859-1 یا UTF-8.

طول
طول نام.

kflags
اگر نام در UTF-8 داده شده است، آن را روی "HVhek_UTF8" تنظیم کنید. مقدار مستقیم به عنوان ارسال می شود
پارامتر kflags به "hv_common()".

مخلوط
یک مقدار هش از پیش محاسبه شده برای نام MRO یا 0.

پاسخگویی


تابع "Resolve" برای ایجاد یک ISA خطی برای ذخیره داده شده، با استفاده از آن فراخوانی می شود
این MRO آن را با یک اشاره گر به مخفیگاه فراخوانی می شود، و a سطح از 0. هسته همیشه تنظیم می شود
سطح زمانی که تابع شما را فراخوانی می کند به 0 می رسد - این پارامتر به شما اجازه می دهد
پیاده سازی برای ردیابی عمق در صورت نیاز به تکرار.

تابع باید به یک آرایه حاوی کلاس های والد به ترتیب ارجاع دهد.
نام کلاس ها باید نتیجه فراخوانی "HvENAME()" در مخزن باشد. که در
در مواردی که "HvENAME()" null برمی گرداند، "HvNAME()" باید به جای آن استفاده شود.

تماس گیرنده مسئول افزایش تعداد ارجاع آرایه ای است که در صورت بازگشت به آن باز می گردد
می خواهد ساختار را حفظ کند. بنابراین، اگر مقدار موقتی ایجاد کرده‌اید که آن را نگه می‌دارید
اشاره گر به "sv_2mortal()" برای اطمینان از اینکه به درستی از بین رفته است. اگر کش کرده اید
مقدار بازگشتی خود را، سپس یک اشاره گر را بدون تغییر تعداد مرجع به آن برگردانید.

ذخیره سازی


محاسبه MRO ها می تواند گران باشد. پیاده سازی یک کش فراهم می کند که در آن می توانید
یک "SV *" یا هر چیزی که می تواند به "SV *" فرستاده شود، مانند "AV *" ذخیره کنید. خواندن
مقدار خصوصی خود، از ماکرو "MRO_GET_PRIVATE_DATA() استفاده کنید، و آن را به "mro_meta" منتقل کنید
ساختار از stash، و یک اشاره گر به ساختار "mro_alg" شما:

meta = HvMROMETA(stash);
private_sv = MRO_GET_PRIVATE_DATA(meta، &my_mro_alg);

برای تنظیم مقدار خصوصی خود، با "Perl_mro_set_private_data()" تماس بگیرید:

Perl_mro_set_private_data (aTHX_ meta, &c3_alg, private_sv);

کش داده های خصوصی مالکیت ارجاعی به private_sv را به دست می گیرد، تقریباً به همین ترتیب
که "hv_store()" مالکیت مرجعی را به مقداری که شما آن را ارسال می کنید، می گیرد.

مثال ها


برای مثال‌هایی از پیاده‌سازی MRO، به "S_mro_get_linear_isa_c3()" و "BOOT:" مراجعه کنید.
بخش از mro/mro.xsو "S_mro_get_linear_isa_dfs()" در mro.c

AUTHORS


اجرای C3 MRO و MROهای قابل تعویض در هسته perl توسط
براندون ال بلک. نیکلاس کلارک رابط قابل اتصال را ایجاد کرد و رابط برندون را بازسازی کرد
پیاده سازی برای کار با آن، و این سند را نوشت.

از perlmroapi آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.