nimo-shake/writer/writer.go (28 lines of code) (raw):

package writer import ( "nimo-shake/common" LOG "github.com/vinllen/log4go" "github.com/aws/aws-sdk-go/service/dynamodb" ) type Writer interface{ // create table CreateTable(tableDescribe *dynamodb.TableDescription) error // pass table description PassTableDesc(tableDescribe *dynamodb.TableDescription) // drop table DropTable() error // write bulk data, used in full sync WriteBulk(input []interface{}) error // insert Insert(input []interface{}, index []interface{}) error // delete Delete(input []interface{}) error // update Update(input []interface{}, index []interface{}) error // close Close() // get session GetSession() interface{} } func NewWriter(name, address string, ns utils.NS, logLevel string) Writer { switch name { case utils.TargetTypeMongo: // return NewMongoWriter(name, address, ns) return NewMongoCommunityWriter(name, address, ns) case utils.TargetTypeAliyunDynamoProxy: return NewDynamoProxyWriter(name, address, ns, logLevel) default: LOG.Crashf("unknown writer[%v]", name) } return nil }