Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tüm bağımsız aracılar için temel sınıf olarak kullanılması amaçlanan bir sınıf. Durumu diğer aracılardan gizlemek ve ileti geçirmeyi kullanarak etkileşime geçmek için kullanılır.
Sözdizimi
class agent;
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| ajan | Aşırı yüklü Bir aracı oluşturur. |
| ~aracı Yıkıcı | Aracıyı yok eder. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| İptal | Bir aracıyı agent_created veya agent_runnable durumlarından agent_canceled durumuna taşır. |
| start | Bir temsilciyi agent_created halinden agent_runnable haline taşır ve yürütülmesi için planlar. |
| durum | Aracıdan eşzamanlı durum bilgisi kaynağı. |
| status_port | Durum bilgisi için aracının zaman uyumsuz kaynağı. |
| beklemek | Ajanın görevini tamamlamasını bekler. |
| hepsini_bekle | Belirtilen tüm ajanların görevlerini tamamlamasını bekler. |
| wait_for_one | Belirtilen ajanlardan herhangi birinin görevini tamamlamasını bekler. |
Korumalı Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| yapılmış | Ajanı, görevinin tamamlandığını belirten agent_done durumuna taşır. |
| Çalıştırın | Bir temsilcinin ana görevini ifade eder.
run türetilmiş bir sınıfta geçersiz kılınmalıdır ve aracı başlatıldıktan sonra ne yapması gerektiğini belirtir. |
Açıklamalar
Daha fazla bilgi için Zaman Uyumsuz Aracılar'a bakın.
Devralma Hiyerarşisi
agent
Gereksinimler
Üst bilgi: agents.h
Ad alanı: eşzamanlılık
ajan
Bir aracı oluşturur.
agent();
agent(Scheduler& _PScheduler);
agent(ScheduleGroup& _PGroup);
Parametreler
_PScheduler
Ajanın yürütme görevinin zamanlandığı Scheduler nesnesi.
_PGroup
Ajanın yürütme görevinin zamanlandığı ScheduleGroup nesnesi.
Scheduler kullanılan nesne zamanlama grubuyla belirtilir.
Açıklamalar
_PScheduler veya _PGroup parametrelerini belirtmezseniz çalışma zamanı varsayılan zamanlayıcıyı kullanır.
~ajan
Aracıyı yok eder.
virtual ~agent();
Açıklamalar
Terminal durumunda olmayan bir aracıyı yok etmek bir hatadır ( agent_done veya agent_canceled). Bu, agent sınıfından devralan bir sınıfın yıkıcısında ajanın bir terminal durumuna ulaşmasını bekleyerek önlenebilir.
İptal
Bir aracıyı agent_created veya agent_runnable durumlarından agent_canceled durumuna taşır.
bool cancel();
Dönüş Değeri
true ajan iptal edildiyse, false aksi takdirde. Aracı zaten çalışmaya başladıysa veya zaten tamamlandıysa iptal edilemez.
done
Ajanı, görevinin tamamlandığını belirten agent_done durumuna taşır.
bool done();
Dönüş Değeri
true agent agent_done durumuna taşınırsa, false aksi takdirde. İptal edilmiş bir temsilci, agent_done durumuna taşınamaz.
Açıklamalar
run yönteminin sonunda, aracınızın yürütülmesinin tamamlandığını bildiğinizde bu yöntem çağrılmalıdır.
çalıştır
Bir temsilcinin ana görevini ifade eder.
run türetilmiş bir sınıfta geçersiz kılınmalıdır ve aracı başlatıldıktan sonra ne yapması gerektiğini belirtir.
virtual void run() = 0;
Açıklamalar
Çağrılmadan hemen önce aracı durumu agent_started olarak değiştirilir. Geri dönmeden önce uygun bir duruma sahip aracının üzerinde yöntemi done çağırmalı ve herhangi bir istisna atmamalıdır.
başla
Bir temsilciyi agent_created halinden agent_runnable haline taşır ve yürütülmesi için planlar.
bool start();
Dönüş Değeri
true aracı doğru şekilde başlatıldıysa, false aksi takdirde. İptal edilmiş bir ajan başlatılamaz.
durum
Aracıdan eşzamanlı durum bilgisi kaynağı.
agent_status status();
Dönüş Değeri
Ajanın geçerli durumunu döndürür. Döndürülen bu durumun döndürüldükten hemen sonra değişebileceğini unutmayın.
durum_portu
Durum bilgisi için aracının zaman uyumsuz kaynağı.
ISource<agent_status>* status_port();
Dönüş Değeri
Ajanın geçerli durumu hakkında mesaj gönderebilen bir mesaj kaynağı döndürür.
bekle
Ajanın görevini tamamlamasını bekler.
static agent_status __cdecl wait(
_Inout_ agent* _PAgent,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametreler
_PAgent
Ajana bekleyeceği bir işaretçi.
_Zaman aşımı
Milisaniye cinsinden bekleyebileceğiniz en uzun süre.
Dönüş Değeri
Ajanın bekleme tamamlandığında durumu agent_status. Bu agent_canceled veya agent_done olabilir.
Açıklamalar
Bir aracı görevi, aracı agent_canceled veya agent_done durumlarına girdiğinde tamamlanır.
parametresi _Timeout sabiti COOPERATIVE_TIMEOUT_INFINITEdışında bir değere sahipse, aracı görevini tamamlamadan önce belirtilen süre dolarsa özel durum operation_timed_out oluşturulur.
tümünü_bekle
Belirtilen tüm ajanların görevlerini tamamlamasını bekler.
static void __cdecl wait_for_all(
size_t count,
_In_reads_(count) agent** _PAgents,
_Out_writes_opt_(count) agent_status* _PStatus = NULL,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametreler
count
dizisinde _PAgentsbulunan aracı işaretçilerinin sayısı.
_PAgents
Aracıların beklemesi için işaretçi dizisi.
_PStatus
Temsilci durumlarının dizisine işaret eden bir işaretçi. Her durum değeri, yöntem döndürdüğünde ilgili aracının durumunu temsil eder.
_Zaman aşımı
Milisaniye cinsinden bekleyebileceğiniz en uzun süre.
Açıklamalar
Bir aracı görevi, aracı agent_canceled veya agent_done durumlarına girdiğinde tamamlanır.
parametresi _Timeout sabiti COOPERATIVE_TIMEOUT_INFINITEdışında bir değere sahipse, aracı görevini tamamlamadan önce belirtilen süre dolarsa özel durum operation_timed_out oluşturulur.
wait_for_one
Belirtilen ajanlardan herhangi birinin görevini tamamlamasını bekler.
static void __cdecl wait_for_one(
size_t count,
_In_reads_(count) agent** _PAgents,
agent_status& _Status,
size_t& _Index,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametreler
count
dizisinde _PAgents bulunan ajan işaretçilerinin sayısı.
_PAgents
Beklenecek ajanlara işaret eden işaretçi dizisi.
_Durum
Aracı durumunun yerleştirileceği değişkene başvuru.
_Dizin
Aracı dizininin yerleştirileceği değişkene başvuru.
_Zaman aşımı
Milisaniye cinsinden bekleyebileceğiniz en uzun süre.
Açıklamalar
agent_canceled veya agent_done durumlarına girdiğinde bir aracı görevi tamamlanır.
parametresi _Timeout sabiti COOPERATIVE_TIMEOUT_INFINITEdışında bir değere sahipse, aracı görevini tamamlamadan önce belirtilen süre dolarsa özel durum operation_timed_out oluşturulur.