เทนเซอร์โฟลว์:: เสิร์ฟ:: แหล่งที่มา

นี่คือคลาสนามธรรม

#include <source.h>

นามธรรมสำหรับโมดูลที่แหล่งที่มาของเซิร์ฟเวอร์เพื่อโหลด หรือแม่นยำยิ่งขึ้น จัดการกับข้อมูลที่สามารถใช้เพื่อโหลดเซิร์ฟเวอร์เหล่านั้นได้

สรุป

ตัวอย่างของการจัดการข้อมูลดังกล่าวคือ:

  • เส้นทางระบบไฟล์ไปยังแผนที่คำศัพท์ต่อเนื่อง
  • การจัดการกับ RPC ขาเข้าที่ระบุโมเดลที่เรียนรู้ด้วยเครื่องเพื่อโหลด
  • Loader (ดู loader.h ) จับข้อมูลจะถูกสันนิษฐานว่าโดยทั่วไปจะมีขนาดเล็ก

มา ตรวจสอบบางทรัพยากรภายนอก (เช่นไฟล์ระบบโทร RPC) เพื่อหาข้อมูลเกี่ยว servables ใหม่และ / หรือเวอร์ชันใหม่ของ servables และ / หรือจำเป็นที่จะต้องขนรุ่น servable มันใช้โทรกลับให้กับสั่งโมดูลเป้าหมาย (เช่น AspiredVersionsManager ) รุ่น (s) ของ servable รับภาระ นอกจากนี้ขึ้นอยู่กับความหมายของโมดูลเป้าหมายที่ มา โดยปริยายสั่งนั้นซึ่งคนที่จะยกเลิกการโหลดโดยเลี่ยง servables เหล่านั้น

กรณีที่พบบ่อยคือที่ มา ส่งเสียงรุ่นสำหรับตรงหนึ่ง servable กรณีที่เรียบง่ายกว่านั้นคือ Servable มีเวอร์ชันคงที่เพียงเวอร์ชันเดียวตลอดอายุการใช้งานของเซิร์ฟเวอร์

แหล่งที่มาสามารถระบุสถานะที่ใช้ร่วมกันระหว่างเซิร์ฟเวอร์ที่ปล่อยออกมาได้หลายรายการ เช่น

  1. พูลเธรดที่แบ่งใช้หรือรีซอร์สอื่นที่หลายเซิร์ฟเวอร์ใช้
  2. โครงสร้างข้อมูลแบบอ่านอย่างเดียวที่ใช้ร่วมกันซึ่งให้บริการได้หลายรายการ เพื่อหลีกเลี่ยงค่าใช้จ่ายด้านเวลาและพื้นที่ในการจำลองโครงสร้างข้อมูลในแต่ละอินสแตนซ์ที่ให้บริการได้ สถานะที่แบ่งใช้ซึ่งเวลาและขนาดการเริ่มต้นไม่สำคัญ (เช่น พูลเธรด) สามารถสร้างได้อย่างรวดเร็วโดยแหล่งที่มา จากนั้นจึงฝังตัวชี้ลงในแต่ละรายการ ServableData ที่ปล่อยออกมา การสร้างราคาแพงหรือขนาดใหญ่ของรัฐที่ใช้ร่วมกันควรจะรอให้มีผลบังคับใช้เป็นครั้งแรก Loader :: โหลด () โทรคือการปกครองโดยผู้จัดการ สมมาตรที่ พับ :: ยกเลิกการโหลด () เรียกร้องให้ servable สุดท้ายใช้ราคาแพง / ขนาดใหญ่ของรัฐที่ใช้ร่วมกันควรฉีกมันลง

ตัวสร้างและตัวทำลาย

~Source ()

ประเภทสาธารณะ

AspiredVersionsCallback โดยใช้
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
โทรกลับหา แหล่งที่มา กับรุ่นอุปทาน (s) ของ servable ไปยังเป้าหมายที่จะโหลด

งานสาธารณะ

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
จัดหา AspiredVersionsCallback เพื่อใช้งาน เรียกได้ไม่เกินครั้งเดียว

ประเภทสาธารณะ

AspiredVersionsCallback

std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)> AspiredVersionsCallback

โทรกลับหา แหล่งที่มา กับรุ่นอุปทาน (s) ของ servable ไปยังเป้าหมายที่จะโหลด

การเรียกใช้การเรียกกลับครั้งเดียวเกี่ยวข้องกับสตรีมที่แสดงผลได้เดียว (กำหนดโดย 'servable_name') ทุกเวอร์ชันที่ให้มาในการเรียกต้องเป็นสำหรับ servable ที่ระบุใน 'servable_name' การเรียกบนสตรีมที่ให้บริการต่างกันนั้นตั้งฉากกัน

การเรียกหลายครั้งอาจจัดหาอ็อบเจ็กต์ servable-data ที่มีรหัสเหมือนกัน (เช่น ชื่อและเวอร์ชันที่ใช้งานได้เหมือนกัน) ออบเจ็กต์ข้อมูลที่สามารถแสดงได้ดังกล่าวจะถือว่าเทียบเท่ากันในเชิงความหมาย ผู้รับจะเก็บหนึ่งไว้และทิ้งส่วนที่เหลือ

หากมีการระบุเวอร์ชันที่ใช้งานได้ V ในการเรียกใช้ครั้งแรก และต่อมาละเว้นจากการเรียกใช้ครั้งที่สอง ความหมายของการละเว้น V จะขึ้นอยู่กับความหมายของเป้าหมายของการเรียกกลับ เป้าหมายบางอย่างจะตีความการละเว้นของ V เป็นคำสั่งโดยปริยายในการยกเลิกการโหลด V แต่ละเป้าหมายต้องจัดทำเอกสารความหมายของมันในเรื่องนี้

งานสาธารณะ

SetAspiredVersionsCallback

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

จัดหา AspiredVersionsCallback เพื่อใช้งาน เรียกได้ไม่เกินครั้งเดียว

~ที่มา

virtual  ~Source()=default