mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-31 22:19:32 +08:00
- 后端新增 IRIS 连接、查询、DDL、索引元数据和 DataGrid 编辑能力 - 接入 optional driver-agent、构建标签、revision 生成和变更检测流程 - 前端新增 IRIS 连接入口、方言映射、能力配置和图标展示 - 修复 IRIS 主键识别、事务开启错误处理和驱动连接关闭问题 - 补充后端、前端和构建脚本相关回归测试 Refs #408
114 lines
2.1 KiB
Go
114 lines
2.1 KiB
Go
package connection
|
|
|
|
import "github.com/caretdev/go-irisnative/src/iris"
|
|
|
|
func (c *Connection) ServerVersion() (result string, err error) {
|
|
err = c.ClassMethod("%SYSTEM.Version", "GetVersion", &result)
|
|
return
|
|
}
|
|
|
|
func (c *Connection) ClassMethod(class, method string, result interface{}, args ...interface{}) (err error) {
|
|
msg := NewMessage(CLASSMETHOD_VALUE)
|
|
msg.Set(class)
|
|
msg.Set(method)
|
|
msg.Set(len(args))
|
|
for _, arg := range args {
|
|
msg.Set(arg)
|
|
}
|
|
|
|
_, err = c.conn.Write(msg.Dump(c.count()))
|
|
if err != nil {
|
|
return
|
|
}
|
|
msg, err = ReadMessage(c.conn)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
msg.Get(result)
|
|
|
|
return
|
|
}
|
|
|
|
func (c *Connection) ClassMethodVoid(class, method string, args ...interface{}) (err error) {
|
|
msg := NewMessage(CLASSMETHOD_VOID)
|
|
msg.Set(class)
|
|
msg.Set(method)
|
|
msg.Set(len(args))
|
|
for _, arg := range args {
|
|
msg.Set(arg)
|
|
}
|
|
|
|
_, err = c.conn.Write(msg.Dump(c.count()))
|
|
if err != nil {
|
|
return
|
|
}
|
|
msg, err = ReadMessage(c.conn)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func (c *Connection) Method(obj iris.Oref, method string, result interface{}, args ...interface{}) (err error) {
|
|
msg := NewMessage(METHOD_VALUE)
|
|
msg.Set(obj)
|
|
msg.Set(method)
|
|
msg.Set(len(args))
|
|
for _, arg := range args {
|
|
msg.Set(arg)
|
|
}
|
|
|
|
_, err = c.conn.Write(msg.Dump(c.count()))
|
|
if err != nil {
|
|
return
|
|
}
|
|
msg, err = ReadMessage(c.conn)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
msg.Get(result)
|
|
|
|
return
|
|
}
|
|
|
|
func (c *Connection) MethodVoid(obj, method string, args ...interface{}) (err error) {
|
|
msg := NewMessage(METHOD_VOID)
|
|
msg.Set(obj)
|
|
msg.Set(method)
|
|
msg.Set(len(args))
|
|
for _, arg := range args {
|
|
msg.Set(arg)
|
|
}
|
|
|
|
_, err = c.conn.Write(msg.Dump(c.count()))
|
|
if err != nil {
|
|
return
|
|
}
|
|
msg, err = ReadMessage(c.conn)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
func (c *Connection) PropertyGet(obj iris.Oref, property string, result interface{}) (err error) {
|
|
msg := NewMessage(PROPERTY_GET)
|
|
msg.Set(obj)
|
|
msg.Set(property)
|
|
// msg.Set(0)
|
|
|
|
_, err = c.conn.Write(msg.Dump(c.count()))
|
|
if err != nil {
|
|
return
|
|
}
|
|
msg, err = ReadMessage(c.conn)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
msg.Get(result)
|
|
|
|
return
|
|
}
|