pretty comments

This commit is contained in:
Liang Ding 2014-09-25 13:37:59 +08:00
parent 018f53b63a
commit 4af82c672c
9 changed files with 20 additions and 6 deletions

View File

@ -51,10 +51,12 @@ type conf struct {
var Wide conf var Wide conf
// 维护非变化部分的配置. // 维护非变化部分的配置.
//
// 只有 Users 是会运行时变化的,保存回写文件时要使用这个变量. // 只有 Users 是会运行时变化的,保存回写文件时要使用这个变量.
var rawWide conf var rawWide conf
// 定时检查 Wide 运行环境. // 定时检查 Wide 运行环境.
//
// 如果是特别严重的问题(比如 $GOPATH 不存在)则退出进程,另一些不太严重的问题(比如 gocode 不存在)则放入全局通知队列. // 如果是特别严重的问题(比如 $GOPATH 不存在)则退出进程,另一些不太严重的问题(比如 gocode 不存在)则放入全局通知队列.
func FixedTimeCheckEnv() { func FixedTimeCheckEnv() {
go func() { go func() {
@ -93,6 +95,7 @@ func FixedTimeCheckEnv() {
} }
// 定时10 分钟)保存配置. // 定时10 分钟)保存配置.
//
// 主要目的是保存用户会话内容,以备下一次用户打开 Wide 时进行会话还原. // 主要目的是保存用户会话内容,以备下一次用户打开 Wide 时进行会话还原.
func FixedTimeSave() { func FixedTimeSave() {
go func() { go func() {
@ -105,8 +108,7 @@ func FixedTimeSave() {
}() }()
} }
// 获取 username 指定的用户的工作空间路径. // 获取 username 指定的用户的工作空间路径,查找不到时返回空字符串.
// 查找不到时返回空字符串.
func (*conf) GetUserWorkspace(username string) string { func (*conf) GetUserWorkspace(username string) string {
for _, user := range Wide.Users { for _, user := range Wide.Users {
if user.Name == username { if user.Name == username {
@ -229,6 +231,7 @@ func Load() {
} }
// 检查文件或目录是否存在. // 检查文件或目录是否存在.
//
// 如果由 filename 指定的文件或目录存在则返回 true否则返回 false. // 如果由 filename 指定的文件或目录存在则返回 true否则返回 false.
func isExist(filename string) bool { func isExist(filename string) bool {
_, err := os.Stat(filename) _, err := os.Stat(filename)

View File

@ -333,6 +333,7 @@ func FindUsagesHandler(w http.ResponseWriter, r *http.Request) {
} }
// 计算光标偏移位置. // 计算光标偏移位置.
//
// line 指定了行号(第一行为 0ch 指定了列号(第一列为 0. // line 指定了行号(第一行为 0ch 指定了列号(第一列为 0.
func getCursorOffset(code string, line, ch int) (offset int) { func getCursorOffset(code string, line, ch int) (offset int) {
lines := strings.Split(code, "\n") lines := strings.Split(code, "\n")

View File

@ -20,6 +20,7 @@ type Event struct {
} }
// 全局事件队列. // 全局事件队列.
//
// 入队的事件将分发到每个用户的事件队列中. // 入队的事件将分发到每个用户的事件队列中.
var EventQueue = make(chan int, MaxQueueLength) var EventQueue = make(chan int, MaxQueueLength)
@ -33,6 +34,7 @@ type UserEventQueue struct {
type Queues map[string]*UserEventQueue type Queues map[string]*UserEventQueue
// 用户事件队列集. // 用户事件队列集.
//
// <sid, *UserEventQueue> // <sid, *UserEventQueue>
var UserEventQueues = Queues{} var UserEventQueues = Queues{}

View File

@ -218,8 +218,9 @@ func main() {
} }
} }
// HTTP Handler 包装. // HTTP Handler 包装,完成共性处理.
// 完成共性处理: //
// 共性处理:
// //
// 1. panic recover // 1. panic recover
// 2. 请求计时 // 2. 请求计时

View File

@ -32,6 +32,7 @@ type Notification struct {
} }
// 用户事件处理:将事件转为通知,并通过通知通道推送给前端. // 用户事件处理:将事件转为通知,并通过通知通道推送给前端.
//
// 当用户事件队列接收到事件时将会调用该函数进行处理. // 当用户事件队列接收到事件时将会调用该函数进行处理.
func event2Notification(e *event.Event) { func event2Notification(e *event.Event) {
if nil == session.NotificationWS[e.Sid] { if nil == session.NotificationWS[e.Sid] {

View File

@ -9,6 +9,7 @@ import (
) )
// 所有用户正在运行的程序进程集. // 所有用户正在运行的程序进程集.
//
// <sid, []*os.Process> // <sid, []*os.Process>
type procs map[string][]*os.Process type procs map[string][]*os.Process

View File

@ -1,4 +1,5 @@
// 会话操作. // 会话操作.
//
// Wide 服务器端需要维护两种会话: // Wide 服务器端需要维护两种会话:
// //
// 1. HTTP 会话:主要用于验证登录 // 1. HTTP 会话:主要用于验证登录
@ -65,6 +66,7 @@ var WideSessions Sessions
var mutex sync.Mutex var mutex sync.Mutex
// 在一些特殊情况(例如浏览器不间断刷新/在源代码视图刷新)下 Wide 会话集内会出现无效会话该函数定时1 小时)检查并移除这些无效会话. // 在一些特殊情况(例如浏览器不间断刷新/在源代码视图刷新)下 Wide 会话集内会出现无效会话该函数定时1 小时)检查并移除这些无效会话.
//
// 无效会话:在检查时间内 30 分钟都没有使用过的会话WideSession.Updated 字段. // 无效会话:在检查时间内 30 分钟都没有使用过的会话WideSession.Updated 字段.
func FixedTimeRelease() { func FixedTimeRelease() {
go func() { go func() {
@ -85,8 +87,7 @@ func FixedTimeRelease() {
}() }()
} }
// 建立会话通道. // 建立会话通道. 通道断开时销毁会话状态,回收相关资源.
// 通道断开时销毁会话状态,回收相关资源.
func WSHandler(w http.ResponseWriter, r *http.Request) { func WSHandler(w http.ResponseWriter, r *http.Request) {
sid := r.URL.Query()["sid"][0] sid := r.URL.Query()["sid"][0]
wSession := WideSessions.Get(sid) wSession := WideSessions.Get(sid)
@ -222,6 +223,7 @@ func (sessions *Sessions) Get(sid string) *WideSession {
} }
// 移除 Wide 会话,释放相关资源. // 移除 Wide 会话,释放相关资源.
//
// 会话相关资源: // 会话相关资源:
// //
// 1. 用户事件队列 // 1. 用户事件队列

View File

@ -19,6 +19,7 @@ import (
) )
// Shell 通道. // Shell 通道.
//
// <sid, *util.WSChannel>> // <sid, *util.WSChannel>>
var ShellWS = map[string]*util.WSChannel{} var ShellWS = map[string]*util.WSChannel{}
@ -145,6 +146,7 @@ func pipeCommands(username string, commands ...*exec.Cmd) string {
out, err := last.CombinedOutput() out, err := last.CombinedOutput()
// 结束进程,释放资源
for _, command := range commands[:len(commands)-1] { for _, command := range commands[:len(commands)-1] {
command.Wait() command.Wait()
} }

View File

@ -11,6 +11,7 @@ type mynet struct{}
// 网络工具. // 网络工具.
var Net = mynet{} var Net = mynet{}
// 获取第一块网卡的 IP 地址.
func (*mynet) LocalIP() (string, error) { func (*mynet) LocalIP() (string, error) {
tt, err := net.Interfaces() tt, err := net.Interfaces()