42 lines
1.6 KiB
Go
42 lines
1.6 KiB
Go
package state
|
|
|
|
import (
|
|
"mrvacommander/pkg/common"
|
|
"mrvacommander/pkg/queue"
|
|
)
|
|
|
|
// StorageInterface defines the methods required for managing storage operations
|
|
// related to server state, e.g. job status, results, and artifacts.
|
|
type ServerState interface {
|
|
// NextID increments and returns the next unique ID for a session.
|
|
NextID() int
|
|
|
|
// GetResult retrieves the analysis result for the specified job.
|
|
GetResult(js common.JobSpec) (queue.AnalyzeResult, error)
|
|
|
|
// GetJobSpecByRepoId retrieves the JobSpec for the specified job Repo ID.
|
|
// TODO: fix this hacky logic
|
|
GetJobSpecByRepoId(sessionId int, jobRepoId int) (common.JobSpec, error)
|
|
|
|
// SetResult stores the analysis result for the specified session ID and repository.
|
|
SetResult(js common.JobSpec, ar queue.AnalyzeResult)
|
|
|
|
// GetJobList retrieves the list of analysis jobs for the specified session ID.
|
|
GetJobList(sessionId int) ([]queue.AnalyzeJob, error)
|
|
|
|
// GetJobInfo retrieves the job information for the specified job specification.
|
|
GetJobInfo(js common.JobSpec) (common.JobInfo, error)
|
|
|
|
// SetJobInfo stores the job information for the specified job specification.
|
|
SetJobInfo(js common.JobSpec, ji common.JobInfo)
|
|
|
|
// GetStatus retrieves the status of a job for the specified session ID and repository.
|
|
GetStatus(js common.JobSpec) (common.Status, error)
|
|
|
|
// SetStatus stores the status of a job for the specified session ID and repository.
|
|
SetStatus(js common.JobSpec, status common.Status)
|
|
|
|
// AddJob adds an analysis job to the list of jobs for the specified session ID.
|
|
AddJob(job queue.AnalyzeJob)
|
|
}
|