توسعه/آموزش/خدمات/معامله گران

ساخت وبلاگ

غالباً مطلوب است که بتوانید انواع خاصی از خدمات یا خدمات را با ویژگی ها یا مشخصات خاص پیدا کنید. KDE یک زبان پرس و جو ساده و در عین حال قدرتمند برای تحقق این زبان به نام زبان پرس و جو Ktrader ارائه می دهد.

داستان دو معامله گر

KDE دو کلاس را ارائه می دهد که به عنوان "معامله گران" عمل می کنند. یک معامله گر پرس و جو می کند و مجموعه ای از خدمات را که با آن محدودیت ها مطابقت دارد ، برمی گرداند. یک تاجر برای افزونه ها و سایر افزودنی ها وجود دارد: KserviceTypetrader ، و دیگری برای MIMETYPES: KMIMETYPETRADER. ویژگی های هر دو مشابه است: آنها برای پرس و جو یکسان هستند ، یک دسترسی به الگوی مجرد را ارائه می دهند ، Kservice :: PTR و سایر شباهت ها را باز می گردانند. بنابراین ، در حالی که این آموزش در درجه اول روی KserviceTypetrader متمرکز است ، بخش اعظم محتوا برای معامله گر Mimetype نیز قابل استفاده است.

انواع خدمات

KserviceTypetrader برای یافتن اجزای جداگانه مانند افزونه های کاربردی ، صفحه نمایش و پانل های کنترل که در سیستم ثبت شده اند استفاده می شود. مفهوم اصلی مورد استفاده در اینجا ، "نوع سرویس" است. هر مجموعه از خدمات دارای یک نوع خدمات منحصر به فرد است که پیدا کردن نوع مؤلفه مورد نیاز بسیار آسان است.

این بدان معنی است که ، هر نوع افزونه برنامه به طور منحصر به فرد در مجموعه کلیه خدمات نامگذاری شده است. بنابراین ، یافتن افزونه ها برای یک برنامه خاص ، بدون نگرانی در مورد گرفتن افزونه برنامه دیگر در لیست ، بسیار مهم است.

نمونه هایی از انواع خدمات عبارتند از:

  • kparts/readwritepart
  • KTextEditor/سند
  • نگهبان صفحه نمایش
  • ترمینال
  • UseragentStrings
  • سازنده
  • kdevelop/plugin

هیچ محدودیتی برای تعداد انواع خدماتی که یک برنامه داده شده ممکن است از آن استفاده کند یا ثبت نام کند وجود ندارد. البته انواع خدمات محدود به افزونه ها نیستند و ممکن است برای هر نوع مؤلفه داده مورد استفاده قرار گیرند.

ایجاد انواع خدمات جدید در آموزش بعدی این سری پوشانده شده است: ایجاد و بارگذاری افزونه ها با استفاده از KService

استفاده اساسی KserviceTypetrader

معامله گر سرویس همیشه از طریقخود()دسترسی Singleton. با استفاده از KServiceTypetrader ، می توانیم یکی از سه کار را انجام دهیم:

  • پرس و جو: پرس و جو برای لیستی از خدمات سفارش داده شده با توجه به ترجیحات کاربر (در صورت وجود)
  • DefaultOffers: درخواست کلیه خدمات ، بدون گزارش
  • PreferredService: درخواست خدمات ارجح یک نوع معین

کد انجام این کار بسیار مستقیم به جلو است:

در هر حالت ، صفر یا بیشتر خدمات بازگردانده می شوند که اکنون برای مکان یابی ، توصیف و بارگیری موردی که نشان می دهد قابل استفاده است.

زبان پرس و جو Ktrader

مثالهای فوق کاملاً ساده است و برای بسیاری از نیازهای کاربردی به اندازه کافی تفصیل نیست. به عنوان مثال ، ما فقط ممکن است بخواهیم افزونه ها را برای یک دسته خاص ، که با یک Mimetype خاص همراه هستند ، یا نام افزونه خاصی دارند ، لیست کنیم. اینجاست که زبان پرس و جو وارد می شود.

خود زبان پرس و جو به گونه ای طراحی شده است که قابل خواندن و انعطاف پذیر انسان باشد.kservicetypetrader :: پرس و جوعلاوه بر نوع سرویس ، به صورت اختیاری پرس و جو می کند و از آن برای ارائه جستجوهای ریز تر استفاده می کند. بنابراین ، به عنوان مثال ، ما مثال قبلی را به روش زیر اصلاح خواهیم کرد:

این کد به دنبال kpart خواهد بود که هم قادر به خواندن/نوشتن فایلهای متنی ساده باشد و همچنین یک مؤلفه Koffice است ، یا می تواند قالب های اسناد ODF را به سادگی بخواند.

خطاهای موجود در نمایش داده ها از طریق خروجی اشکال زدایی به کنسول در زمان اجرا گزارش می شود.

ترتیب عملیات ها

رشته پرس و جو از چپ به راست ، یک بخش در یک زمان ارزیابی می شود. بخش ها توسط اپراتورهای بولی تقسیم می شوند (به زیر مراجعه کنید) یا توسط پرانتز ('()') ، که به عنوان شخصیت های گروه بندی خدمت می کنند.

لفظات

سه نوع تحت اللفظی توسط زبان پرس و جو Ktrader پشتیبانی می شود:

  • رشته ها: رشته های شخصیت ، که باید در نقل قول های منفرد (") محصور شوند
  • Booleans: درست یا نادرست
  • اعداد صحیح امضا شده
  • شماره نقطه شناور امضا شده

شناسه ها

شناسه ها در یک رشته پرس و جو به ورودی های ذکر شده در سرویس ها نقشه برداری می شوند. دسکتاپفایل. به عنوان مثال ، "Name" نام سرویس است ، "ServiceTypes" لیستی از انواع خدماتی است که از آن پشتیبانی می کند.

شناسه ها فقط ممکن است حاوی شخصیت های الفبایی و شخصیت "-" باشند. شناسه هایی که با یک شخصیت الفبایی شروع نمی شوند یا حاوی کاراکترهای غیر آلفانومی هستند ، باید در براکت ها محصور شوند ، به عنوان مثال.[X-KDE-INIT].

همچنین سه شناسه ویژه وجود دارد:

  • Desktopentryname مخفف نام پرونده ورود دسک تاپ سرویس بدون پسوند آن است. این می تواند برای حذف برخی از خدمات خاص مفید باشد.
  • DesktopentryPath مخفف مسیر نسبی یا کامل به پرونده . desktop است ، به kservice :: desktopentrypath مراجعه کنید.
  • کتابخانه: مترادف [X-KDE-Library] در پرونده . desktop.

یک شناسه را می توان برای وجود با اپراتور موجود ، به عنوان مثال بررسی کرد."وجود [x-kde-library]". این امر به ویژه در هنگام بررسی مقدار یک شناسه با مقدار پیش فرض مفید است. به عنوان مثال ، اگر MyProp یک ویژگی با نوع بولی باشد ، ممکن است فرد "MyProp یا MyProp" را بنویسد تا MyProp را با پیش فرض "واقعی" مطابقت دهد.

اپراتورهای مقایسه

از اپراتورهای مقایسه زیر می توان برای مقایسه مقادیر هر یک از انواع داده های پشتیبانی شده استفاده کرد:

  • ==: برابری
  • ! =: نابرابری
  • : کمتر از
  • : کمتر از یا برابر با
  • >: بزرگتر از
  • >=: بزرگتر از یا برابر با

اپراتورهای ریاضی

از اپراتورهای ریاضی زیر می توان با انواع عددی استفاده کرد:

اپراتورهای بولی

اپراتورهای بولی زیر پشتیبانی می شوند:

اپراتورهای تطبیق رشته

اپراتورهای تطبیق رشته همه یک مقدار بولی را برمی گردانند و نشانگر موفقیت یا عدم موفقیت هستند.

مقایسه رشته با استفاده از اپراتورهای زیر انجام می شود:

  • ==: برابری ، حساس به پرونده
  • =~: برابری ، بی حس
  • ! =: نابرابری ، حساس به پرونده
  • !~: نابرابری ، بی حساس

تطبیق زیر رشته را می توان با استفاده از اپراتورهای زیر انجام داد:

  • ~: شامل ، به عنوان مثال"'بار'~"Foobarbaz" درست است
  • ~~: شامل تطبیق غیر حساس مورد ، به عنوان مثال"'بار'~~"Foobarbaz" درست است

تطبیق توالی زیر می تواند با استفاده از این اپراتورها انجام شود (از 5. 49):

  • Subseq: توالی زیر ، به عنوان مثال"fbb" subseq "foobarbaz" "درست است
  • ~SUBSEQ: توالی غیر حساس مورد ، به عنوان مثال"FBB"~subseq 'foobarbaz' "درست است

یک مسابقه زیرگذر مانند یک مسابقه زیر رشته ای است به جز شخصیت ها که لازم نیست متناقض باشد. به عنوان مثال "CT" زیر مجموعه "گربه" است اما یک رشته فرعی نیست."در" هم زیر رشته و هم زیر مجموعه "گربه" است. همه رشته های زیر پیروی از زیر هستند.

این مفید است اگر می خواهید از یک جستجوی فازی پشتیبانی کنید ، به عنوان مثال در جستجوی نویسنده Libreoffice 6. 0 هستید ، پس از تایپ کردن Libre ، لیستی از همه برنامه های Libreoffice را مشاهده می کنید ، تا لیستی را که فقط برای اضافه کردن آن اضافه می کنید ، محدود کنید (بنابرایناصطلاح جستجو librewrite است) به جای تایپ کردن کل نام برنامه تا رسیدن به یک نامه متمایز. همچنین به کاربر اجازه می دهد تا برخی از شخصیت ها را فراموش کند.

برخی از خصوصیات ، مانند میمون و سرویس ها ، لیستی از رشته ها هستند. این لیست ها را می توان با استفاده از اپراتورهای زیر جستجو کرد:

مقالات آموزش فارکس...
ما را در سایت مقالات آموزش فارکس دنبال می کنید

برچسب : نویسنده : بهزاد فراهانی بازدید : <-PostHit-> تاريخ : دوشنبه 25 ارديبهشت 1402 ساعت: 16:41