1"use strict";(globalThis.webpackChunkatsf4g_co_docs||=[]).push([[2694],{4097(e,r,n){n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"components/orbit","title":"Orbit","description":"Orbit is a scheduling framework (four layers: controller / agent / server / client) for managing dynamically","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/components/orbit.md","sourceDirName":"components","slug":"/components/orbit","permalink":"/en/components/orbit","draft":false,"unlisted":false,"editUrl":"https://github.com/atframework/atsf4g-co/edit/main/doc/docs/components/orbit.md","tags":[],"version":"current","frontMatter":{"title":"Orbit"},"sidebar":"docs","previous":{"title":"Rank Board (rank)","permalink":"/en/components/rank"},"next":{"title":"Services Overview","permalink":"/en/services/overview"}}');var i=n(6070),o=n(3797);const s={title:"Orbit"},c="Orbit",d={},l=[{value:"Composition",id:"composition",level:2},{value:"Code Generation",id:"code-generation",level:2},{value:"Example Service",id:"example-service",level:2},{value:"Client-Side Runtime",id:"client-side-runtime",level:2}];function a(e){const r={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"orbit",children:"Orbit"})}),"\n",(0,i.jsx)(r.p,{children:"Orbit is a scheduling framework (four layers: controller / agent / server / client) for managing dynamically\r\ncreated logical instances."}),"\n",(0,i.jsxs)(r.p,{children:["Location: ",(0,i.jsx)(r.code,{children:"src/component/orbit/"}),"."]}),"\n",(0,i.jsx)(r.h2,{id:"composition",children:"Composition"}),"\n",(0,i.jsxs)(r.table,{children:[(0,i.jsx)(r.thead,{children:(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.th,{children:"Part"}),(0,i.jsx)(r.th,{children:"Description"})]})}),(0,i.jsxs)(r.tbody,{children:[(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"controller/"})}),(0,i.jsx)(r.td,{children:"Controller service: global scheduling decisions"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"agent/"})}),(0,i.jsx)(r.td,{children:"Agent service: node-level agent"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"protocol/"})}),(0,i.jsx)(r.td,{children:"Three proto groups: client / common / server"})]}),(0,i.jsxs)(r.tr,{children:[(0,i.jsx)(r.td,{children:(0,i.jsx)(r.code,{children:"sdk/"})}),(0,i.jsx)(r.td,{children:"Four SDKs: agent / client / controller / server; the server SDK ships its own dedicated Mako templates"})]})]})]}),"\n",(0,i.jsx)(r.h2,{id:"code-generation",children:"Code Generation"}),"\n",(0,i.jsxs)(r.p,{children:["The orbit server SDK uses its own templates (",(0,i.jsx)(r.code,{children:"orbit/sdk/server/template/"}),"):\r\n",(0,i.jsx)(r.code,{children:"handle_orbit_rpc"})," / ",(0,i.jsx)(r.code,{children:"task_action_orbit_rpc"})," / ",(0,i.jsx)(r.code,{children:"rpc_call_api_for_orbit"}),", generating ",(0,i.jsx)(r.code,{children:"handle_orbit_rpc_*"}),",\r\n",(0,i.jsx)(r.code,{children:"task_action_orbit_rpc"}),", and other code."]}),"\n",(0,i.jsx)(r.h2,{id:"example-service",children:"Example Service"}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.code,{children:"src/orbitsvr/"})," demonstrates the usage of the orbit component:\r\n",(0,i.jsx)(r.code,{children:"handle_orbit_rpc_orbitserverrpcservice"})," (orbit server RPC handler) and ",(0,i.jsx)(r.code,{children:"task_action_echo"}),"."]}),"\n",(0,i.jsx)(r.h2,{id:"client-side-runtime",children:"Client-Side Runtime"}),"\n",(0,i.jsxs)(r.p,{children:[(0,i.jsx)(r.code,{children:"src/component/GameSharedComponent/Orbit/"})," provides the client-side (e.g., UE) Orbit runtime SDK;\r\n",(0,i.jsx)(r.code,{children:"resource/UeSource*"})," stores the UE protocol source data."]})]})}function h(e={}){const{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.