// Copyright 2011 Xing Xing . // All rights reserved. // Use of this source code is governed by a MIT // license that can be found in the LICENSE file. package client import ( ) type poolItem struct { } /* The client pool usage: pool := client.NewPool() pool.Add("127.0.0.1:4730", 1) handle := pool.Do("ToUpper", []byte("abcdef"), JOB_LOW|JOB_BG) */ type Pool struct { } // Create a new client. // Connect to "addr" through "network" // Eg. // client, err := client.New("127.0.0.1:4730") func NewPool() (pool *Pool) { } func (pool *Pool) Add(addr string, rate int) { // init a poolItem with Client & rate } // Do the function. // funcname is a string with function name. // data is encoding to byte array. // flag set the job type, include running level: JOB_LOW, JOB_NORMAL, JOB_HIGH, // and if it is background job: JOB_BG. // JOB_LOW | JOB_BG means the job is running with low level in background. func (pool *Pool) Do(funcname string, data []byte, flag byte) (handle string, err error) { // Select a job server } // Get job status from job server. // !!!Not fully tested.!!! func (pool *Pool) Status(handle string) { // } // Send a something out, get the samething back. func (pool *Pool) Echo(data []byte) { } // Close func (client *Client) Close() (err error) { }