Documentation ¶
Index ¶
- type CallUuid
- type IProxy
- type IService
- type IStub
- type ProxyBase
- func (base *ProxyBase) GetID() ProxyId
- func (base *ProxyBase) GetRpc() IRpc
- func (base *ProxyBase) GetTargetID() uint32
- func (base *ProxyBase) GetTransport() transport.ITransport
- func (base *ProxyBase) IsConnected() bool
- func (base *ProxyBase) SetID(id ProxyId)
- func (base *ProxyBase) SetRpc(r IRpc)
- func (base *ProxyBase) SetTargetID(id uint32)
- func (base *ProxyBase) SetTransport(trans transport.ITransport)
- type ProxyCreator
- type ProxyId
- type ProxyManager
- type ProxyMap
- type ServiceCache
- type ServiceCreator
- type ServiceStatus
- type StubCall
- type StubCreator
- type StubManager
- type SvcUuid
- type Trans2Proxy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IProxy ¶ added in v0.3.2
type IProxy interface { // GetUUID service uuid // @detail get service uuid id which generated by rpc-repo GetUUID() uint64 // GetSignature // get method human-readable name GetSignature(uint32) string // GetID //get proxy instance ID, priority delivery service instance GetID() ProxyId // SetID // set proxy instance ID SetID(ProxyId) // SetTargetID // last return service id, maybe some service box need SetTargetID(uint32) // GetTargetID // return last return service id GetTargetID() uint32 // IsOneWay oneway //@detail is one way function which not wait for return //@param method id IsOneWay(uint32) bool // GetSrvName //@detail get proxy name GetSrvName() string // SetTransport // @detail set transport SetTransport(transport transport.ITransport) // GetTransport //@detail get transport GetTransport() transport.ITransport // IsConnected // check transport valid state IsConnected() bool // SetRpc set rpc instance to proxy SetRpc(IRpc) // GetRpc get rpc instance from proxy GetRpc() IRpc }
IProxy IProxy, user's idl proxy interface, using as client to call remote function; rpc framewrok set transport to it
type IService ¶ added in v0.3.1
type IService interface { // GetUUID service uuid, generated by rpc-repo GetUUID() uint64 // OnAfterFork init service by framework, user can init some custom data in this function OnAfterFork() bool // OnTick tick your service the same goroutine OnTick() bool // OnBeforeDestroy before service unload, you can clean your own data in this func OnBeforeDestroy() bool }
IService user custom service framework interface
type IStub ¶ added in v0.3.2
type IStub interface { //GetUUID service uuid, generate by rpc-repo GetUUID() SvcUuid //GetServiceName service name GetServiceName() string //GetSignature method human-readable name GetSignature(methodId uint32) string //GetMutipleNum service goroutine num, read from idl keyword multiple GetMutipleNum() uint32 //IsOneWay one way function, not send response IsOneWay(methodId uint32) bool // Call call service's method // return encode response buffer data and errors Call(*StubCall, []byte) ([]byte, error) //OnAfterFork invoke by framework after spawned //init service data or load db data in this function OnAfterFork() bool //OnBeforeDestroy invoke by framework before uninitialized //clean service data in this function OnBeforeDestroy() bool //OnTick tick by service manager in logic tick OnTick() bool //GetStatus get service status //TODO: for hot update GetStatus() ServiceStatus //SetStatus set service status SetStatus(status ServiceStatus) }
IStub rpc stub of service's side
type ProxyBase ¶ added in v0.3.2
type ProxyBase struct {
// contains filtered or unexported fields
}
ProxyBase proxy common struct impl
func (*ProxyBase) GetTargetID ¶ added in v0.3.2
func (*ProxyBase) GetTransport ¶ added in v0.3.2
func (base *ProxyBase) GetTransport() transport.ITransport
func (*ProxyBase) IsConnected ¶ added in v0.3.2
func (*ProxyBase) SetTargetID ¶ added in v0.3.2
func (*ProxyBase) SetTransport ¶ added in v0.3.2
func (base *ProxyBase) SetTransport(trans transport.ITransport)
SetTransport set network message transport called by creator
type ProxyCreator ¶ added in v0.3.2
type ProxyCreator func(transport.ITransport) IProxy
ProxyCreator proxy creator, one client may connect to differently service
type ProxyManager ¶ added in v0.3.2
type ProxyManager struct {
// contains filtered or unexported fields
}
ProxyManager manager connect proxy for rpc framework, multiple may be read & write TODO add tranport id 2 service uid cache
func (*ProxyManager) Add ¶ added in v0.3.2
func (p *ProxyManager) Add(proxy IProxy) error
func (*ProxyManager) Destroy ¶ added in v0.3.2
func (p *ProxyManager) Destroy(proxyId uint32) error
func (*ProxyManager) GeneProxyId ¶ added in v0.3.2
func (p *ProxyManager) GeneProxyId() ProxyId
type ServiceCache ¶ added in v0.3.2
type ServiceCache map[SvcUuid]*stubWrapper
ServiceCache service storage struct
type ServiceCreator ¶ added in v0.3.1
type ServiceCreator func(interface{}) IService
ServiceCreator service creator
type ServiceStatus ¶ added in v0.3.2
type ServiceStatus uint32
const ( SERVICE_RESOLVED ServiceStatus = iota + 1 //ready for servicing SERVICE_UPDATING //stop receive message, wait for update )
type StubCall ¶ added in v0.3.2
type StubCall struct {
// contains filtered or unexported fields
}
StubCall remote call data
func (*StubCall) GetServiceUUID ¶ added in v0.3.2
type StubCreator ¶ added in v0.3.2
type StubCreator func(v interface{}) IStub
StubCreator stub factory
type StubManager ¶ added in v0.3.2
type StubManager struct {
// contains filtered or unexported fields
}
StubManager stub manager, manager registered service
func (*StubManager) Add ¶ added in v0.3.2
func (m *StubManager) Add(impl IStub) (err error)
func (*StubManager) GeneUuid ¶ added in v0.3.2
func (m *StubManager) GeneUuid() CallUuid
func (*StubManager) Get ¶ added in v0.3.2
func (m *StubManager) Get(uuid SvcUuid) *stubWrapper
func (*StubManager) Init ¶ added in v0.3.2
func (m *StubManager) Init(logger log.ILogger)
func (*StubManager) Tick ¶ added in v0.3.2
func (m *StubManager) Tick()