Documentation
¶
Index ¶
- Variables
- type EsimFactory
- type InitFieldsReturn
- type Model
- type ModelPlugin
- type ModelRPC
- type ModelRPCServer
- type Option
- type Plural
- type PoolTpl
- type RPCPluginStructField
- func (rps *RPCPluginStructField) Close()
- func (rps *RPCPluginStructField) GenInitFieldStr(getType reflect.Type, fieldLink, initName string, specFilds *pkg.Fields) []string
- func (rps *RPCPluginStructField) InitField(fields []pkg.Field) *InitFieldsReturn
- func (rps *RPCPluginStructField) KindToInit(refType reflect.Type) string
- func (rps *RPCPluginStructField) SetFilesName(filesName []string)
- func (rps *RPCPluginStructField) SetPackName(packName string)
- func (rps *RPCPluginStructField) SetStructDir(structDir string)
- func (rps *RPCPluginStructField) SetStructFileName(structFileName string)
- func (rps *RPCPluginStructField) SetStructInfo(s *structInfo)
- func (rps *RPCPluginStructField) SetStructName(structName string)
- func (rps *RPCPluginStructField) SortField(fields []pkg.Field) *SortReturn
- type SortReturn
- type StructFieldIface
Constants ¶
This section is empty.
Variables ¶
var HandshakeConfig = plugin.HandshakeConfig{
ProtocolVersion: 1,
MagicCookieKey: "BASIC_PLUGIN",
MagicCookieValue: "hello",
}
Functions ¶
This section is empty.
Types ¶
type EsimFactory ¶ added in v0.0.9
type EsimFactory struct {
//struct name which be search
StructName string
//Struct will be create
NewStructInfo *structInfo
ReleaseStr string
InitField *InitFieldsReturn
NewPluralStr string
ReleasePluralStr string
TypePluralStr string
//option start
Option1 string
Option2 string
Option3 string
Option4 string
Option5 string
OptionParam string
WithNew bool
SpecFieldInitStr string
ReturnStr string
StructTpl templates.StructInfo
// contains filtered or unexported fields
}
+-----------+-----------+ | firstPart | package | | | import | | ----------| ----------| | secondPart| var | | | | | ----------| ----------| | thirdPart | struct | | | funcBody | | ----------| ----------|
func NewEsimFactory ¶ added in v0.0.5
func NewEsimFactory(options ...Option) *EsimFactory
func (*EsimFactory) Close ¶ added in v0.0.9
func (ef *EsimFactory) Close()
type InitFieldsReturn ¶
type ModelPlugin ¶
type ModelPlugin struct {
// Impl Injection
Impl Model
}
This is the implementation of plugin.Plugin so we can serve/consume this
This has two methods: Server must return an RPC server for this plugin type. We construct a ModelRPCServer for this.
Client must return an implementation of our interface that communicates over an RPC client. We return ModelRPC for this.
Ignore MuxBroker. That is used to create more multiplexed streams on our plugin connection and is a more advanced use case.
type ModelRPC ¶
type ModelRPC struct {
// contains filtered or unexported fields
}
Here is an implementation that talks over RPC
type ModelRPCServer ¶
type ModelRPCServer struct {
// This is the real implementation
Impl Model
}
Here is the RPC server that ModelRPC talks to, conforming to the requirements of net/rpc
func (*ModelRPCServer) InitField ¶
func (s *ModelRPCServer) InitField(args interface{}, resp *string) error
func (*ModelRPCServer) Sort ¶
func (s *ModelRPCServer) Sort(args interface{}, resp *string) error
type Option ¶ added in v0.0.7
type Option func(*EsimFactory)
func WithEsimFactoryLogger ¶ added in v0.0.7
func WithEsimFactoryTpl ¶ added in v0.0.7
func WithEsimFactoryWriter ¶ added in v0.0.7
func WithEsimFactoryWriter(writer file_dir.IfaceWriter) Option
type Plural ¶ added in v0.0.5
type Plural struct {
PluralName string
StructName string
Star string
// contains filtered or unexported fields
}
func (Plural) ReleaseString ¶ added in v0.0.5
func (Plural) TypeString ¶ added in v0.0.5
type PoolTpl ¶ added in v0.0.5
type PoolTpl struct {
VarPoolName string
StructName string
// contains filtered or unexported fields
}
func NewPoolTpl ¶ added in v0.0.5
func NewPoolTpl() PoolTpl
type RPCPluginStructField ¶ added in v0.0.9
type RPCPluginStructField struct {
StructName string
StructFileName string
StrcutInfo *structInfo
Fields []pkg.Field
// contains filtered or unexported fields
}
func NewRPCPluginStructField ¶ added in v0.0.9
func NewRPCPluginStructField(writer file_dir.IfaceWriter, logger log.Logger) *RPCPluginStructField
func (*RPCPluginStructField) Close ¶ added in v0.0.9
func (rps *RPCPluginStructField) Close()
func (*RPCPluginStructField) GenInitFieldStr ¶ added in v0.0.9
func (*RPCPluginStructField) InitField ¶ added in v0.0.9
func (rps *RPCPluginStructField) InitField(fields []pkg.Field) *InitFieldsReturn
func (*RPCPluginStructField) KindToInit ¶ added in v0.0.9
func (rps *RPCPluginStructField) KindToInit(refType reflect.Type) string
func (*RPCPluginStructField) SetFilesName ¶ added in v0.0.9
func (rps *RPCPluginStructField) SetFilesName(filesName []string)
func (*RPCPluginStructField) SetPackName ¶ added in v0.0.9
func (rps *RPCPluginStructField) SetPackName(packName string)
func (*RPCPluginStructField) SetStructDir ¶ added in v0.0.9
func (rps *RPCPluginStructField) SetStructDir(structDir string)
func (*RPCPluginStructField) SetStructFileName ¶ added in v0.0.9
func (rps *RPCPluginStructField) SetStructFileName(structFileName string)
func (*RPCPluginStructField) SetStructInfo ¶ added in v0.0.9
func (rps *RPCPluginStructField) SetStructInfo(s *structInfo)
func (*RPCPluginStructField) SetStructName ¶ added in v0.0.9
func (rps *RPCPluginStructField) SetStructName(structName string)
func (*RPCPluginStructField) SortField ¶ added in v0.0.9
func (rps *RPCPluginStructField) SortField(fields []pkg.Field) *SortReturn