func (p *FacebookServiceClient) SetOption(key string, value string) (err error) {
	if err = p.sendSetOption(key, value); err != nil {
		return
	}
	return p.recvSetOption()
}
Sets an option

Parameters:
- Key
- Value
package fb303
import (
	"fmt"
	"github.com/artyom/thrift"
	"math"
)
var _ = math.MinInt32
var _ = thrift.ZERO
var _ = fmt.Printf
type FacebookService interface {  
	GetName() (r string, err error)
	GetVersion() (r string, err error)
	GetStatus() (r FbStatus, err error)
	GetStatusDetails() (r string, err error)
	GetCounters() (r map[string]int64, err error)
	GetCounter(key string) (r int64, err error)
	SetOption(key string, value string) (err error)
	GetOption(key string) (r string, err error)
	GetOptions() (r map[string]string, err error)
	GetCpuProfile(profileDurationInSec int32) (r string, err error)
	AliveSince() (r int64, err error)
	Reinitialize() (err error)
	Shutdown() (err error)
}
type FacebookServiceClient struct {
	Transport       thrift.TTransport
	ProtocolFactory thrift.TProtocolFactory
	InputProtocol   thrift.TProtocol
	OutputProtocol  thrift.TProtocol
	SeqId           int32
}
func NewFacebookServiceClientFactory(t thrift.TTransport, f thrift.TProtocolFactory) *FacebookServiceClient {
	return &FacebookServiceClient{Transport: t,
		ProtocolFactory: f,
		InputProtocol:   f.GetProtocol(t),
		OutputProtocol:  f.GetProtocol(t),
		SeqId:           0,
	}
}
func NewFacebookServiceClientProtocol(t thrift.TTransport, iprot thrift.TProtocol, oprot thrift.TProtocol) *FacebookServiceClient {
	return &FacebookServiceClient{Transport: t,
		ProtocolFactory: nil,
		InputProtocol:   iprot,
		OutputProtocol:  oprot,
		SeqId:           0,
	}
}
func (p *FacebookServiceClient) GetName() (r string, err error) {
	if err = p.sendGetName(); err != nil {
		return
	}
	return p.recvGetName()
}
func (p *FacebookServiceClient) sendGetName() (err error) {
	oprot := p.OutputProtocol
	if oprot == nil {
		oprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.OutputProtocol = oprot
	}
	p.SeqId++
	oprot.WriteMessageBegin("getName", thrift.CALL, p.SeqId)
	args0 := NewGetNameArgs()
	err = args0.Write(oprot)
	oprot.WriteMessageEnd()
	oprot.Flush()
	return
}
func (p *FacebookServiceClient) recvGetName() (value string, err error) {
	iprot := p.InputProtocol
	if iprot == nil {
		iprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.InputProtocol = iprot
	}
	_, mTypeId, seqId, err := iprot.ReadMessageBegin()
	if err != nil {
		return
	}
	if mTypeId == thrift.EXCEPTION {
		error2 := thrift.NewTApplicationException(thrift.UNKNOWN_APPLICATION_EXCEPTION, "Unknown Exception")
		var error3 error
		error3, err = error2.Read(iprot)
		if err != nil {
			return
		}
		if err = iprot.ReadMessageEnd(); err != nil {
			return
		}
		err = error3
		return
	}
	if p.SeqId != seqId {
		err = thrift.NewTApplicationException(thrift.BAD_SEQUENCE_ID, "ping failed: out of sequence response")
		return
	}
	result1 := NewGetNameResult()
	err = result1.Read(iprot)
	iprot.ReadMessageEnd()
	value = result1.Success
	return
}
func (p *FacebookServiceClient) GetVersion() (r string, err error) {
	if err = p.sendGetVersion(); err != nil {
		return
	}
	return p.recvGetVersion()
}
func (p *FacebookServiceClient) sendGetVersion() (err error) {
	oprot := p.OutputProtocol
	if oprot == nil {
		oprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.OutputProtocol = oprot
	}
	p.SeqId++
	oprot.WriteMessageBegin("getVersion", thrift.CALL, p.SeqId)
	args4 := NewGetVersionArgs()
	err = args4.Write(oprot)
	oprot.WriteMessageEnd()
	oprot.Flush()
	return
}
func (p *FacebookServiceClient) recvGetVersion() (value string, err error) {
	iprot := p.InputProtocol
	if iprot == nil {
		iprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.InputProtocol = iprot
	}
	_, mTypeId, seqId, err := iprot.ReadMessageBegin()
	if err != nil {
		return
	}
	if mTypeId == thrift.EXCEPTION {
		error6 := thrift.NewTApplicationException(thrift.UNKNOWN_APPLICATION_EXCEPTION, "Unknown Exception")
		var error7 error
		error7, err = error6.Read(iprot)
		if err != nil {
			return
		}
		if err = iprot.ReadMessageEnd(); err != nil {
			return
		}
		err = error7
		return
	}
	if p.SeqId != seqId {
		err = thrift.NewTApplicationException(thrift.BAD_SEQUENCE_ID, "ping failed: out of sequence response")
		return
	}
	result5 := NewGetVersionResult()
	err = result5.Read(iprot)
	iprot.ReadMessageEnd()
	value = result5.Success
	return
}
func (p *FacebookServiceClient) GetStatus() (r FbStatus, err error) {
	if err = p.sendGetStatus(); err != nil {
		return
	}
	return p.recvGetStatus()
}
func (p *FacebookServiceClient) sendGetStatus() (err error) {
	oprot := p.OutputProtocol
	if oprot == nil {
		oprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.OutputProtocol = oprot
	}
	p.SeqId++
	oprot.WriteMessageBegin("getStatus", thrift.CALL, p.SeqId)
	args8 := NewGetStatusArgs()
	err = args8.Write(oprot)
	oprot.WriteMessageEnd()
	oprot.Flush()
	return
}
func (p *FacebookServiceClient) recvGetStatus() (value FbStatus, err error) {
	iprot := p.InputProtocol
	if iprot == nil {
		iprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.InputProtocol = iprot
	}
	_, mTypeId, seqId, err := iprot.ReadMessageBegin()
	if err != nil {
		return
	}
	if mTypeId == thrift.EXCEPTION {
		error10 := thrift.NewTApplicationException(thrift.UNKNOWN_APPLICATION_EXCEPTION, "Unknown Exception")
		var error11 error
		error11, err = error10.Read(iprot)
		if err != nil {
			return
		}
		if err = iprot.ReadMessageEnd(); err != nil {
			return
		}
		err = error11
		return
	}
	if p.SeqId != seqId {
		err = thrift.NewTApplicationException(thrift.BAD_SEQUENCE_ID, "ping failed: out of sequence response")
		return
	}
	result9 := NewGetStatusResult()
	err = result9.Read(iprot)
	iprot.ReadMessageEnd()
	value = result9.Success
	return
}
func (p *FacebookServiceClient) GetStatusDetails() (r string, err error) {
	if err = p.sendGetStatusDetails(); err != nil {
		return
	}
	return p.recvGetStatusDetails()
}
func (p *FacebookServiceClient) sendGetStatusDetails() (err error) {
	oprot := p.OutputProtocol
	if oprot == nil {
		oprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.OutputProtocol = oprot
	}
	p.SeqId++
	oprot.WriteMessageBegin("getStatusDetails", thrift.CALL, p.SeqId)
	args12 := NewGetStatusDetailsArgs()
	err = args12.Write(oprot)
	oprot.WriteMessageEnd()
	oprot.Flush()
	return
}
func (p *FacebookServiceClient) recvGetStatusDetails() (value string, err error) {
	iprot := p.InputProtocol
	if iprot == nil {
		iprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.InputProtocol = iprot
	}
	_, mTypeId, seqId, err := iprot.ReadMessageBegin()
	if err != nil {
		return
	}
	if mTypeId == thrift.EXCEPTION {
		error14 := thrift.NewTApplicationException(thrift.UNKNOWN_APPLICATION_EXCEPTION, "Unknown Exception")
		var error15 error
		error15, err = error14.Read(iprot)
		if err != nil {
			return
		}
		if err = iprot.ReadMessageEnd(); err != nil {
			return
		}
		err = error15
		return
	}
	if p.SeqId != seqId {
		err = thrift.NewTApplicationException(thrift.BAD_SEQUENCE_ID, "ping failed: out of sequence response")
		return
	}
	result13 := NewGetStatusDetailsResult()
	err = result13.Read(iprot)
	iprot.ReadMessageEnd()
	value = result13.Success
	return
}
func (p *FacebookServiceClient) GetCounters() (r map[string]int64, err error) {
	if err = p.sendGetCounters(); err != nil {
		return
	}
	return p.recvGetCounters()
}
func (p *FacebookServiceClient) sendGetCounters() (err error) {
	oprot := p.OutputProtocol
	if oprot == nil {
		oprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.OutputProtocol = oprot
	}
	p.SeqId++
	oprot.WriteMessageBegin("getCounters", thrift.CALL, p.SeqId)
	args16 := NewGetCountersArgs()
	err = args16.Write(oprot)
	oprot.WriteMessageEnd()
	oprot.Flush()
	return
}
func (p *FacebookServiceClient) recvGetCounters() (value map[string]int64, err error) {
	iprot := p.InputProtocol
	if iprot == nil {
		iprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.InputProtocol = iprot
	}
	_, mTypeId, seqId, err := iprot.ReadMessageBegin()
	if err != nil {
		return
	}
	if mTypeId == thrift.EXCEPTION {
		error18 := thrift.NewTApplicationException(thrift.UNKNOWN_APPLICATION_EXCEPTION, "Unknown Exception")
		var error19 error
		error19, err = error18.Read(iprot)
		if err != nil {
			return
		}
		if err = iprot.ReadMessageEnd(); err != nil {
			return
		}
		err = error19
		return
	}
	if p.SeqId != seqId {
		err = thrift.NewTApplicationException(thrift.BAD_SEQUENCE_ID, "ping failed: out of sequence response")
		return
	}
	result17 := NewGetCountersResult()
	err = result17.Read(iprot)
	iprot.ReadMessageEnd()
	value = result17.Success
	return
}
func (p *FacebookServiceClient) GetCounter(key string) (r int64, err error) {
	if err = p.sendGetCounter(key); err != nil {
		return
	}
	return p.recvGetCounter()
}
func (p *FacebookServiceClient) sendGetCounter(key string) (err error) {
	oprot := p.OutputProtocol
	if oprot == nil {
		oprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.OutputProtocol = oprot
	}
	p.SeqId++
	oprot.WriteMessageBegin("getCounter", thrift.CALL, p.SeqId)
	args20 := NewGetCounterArgs()
	args20.Key = key
	err = args20.Write(oprot)
	oprot.WriteMessageEnd()
	oprot.Flush()
	return
}
func (p *FacebookServiceClient) recvGetCounter() (value int64, err error) {
	iprot := p.InputProtocol
	if iprot == nil {
		iprot = p.ProtocolFactory.GetProtocol(p.Transport)
		p.InputProtocol = iprot
	}
	_, mTypeId, seqId, err := iprot.ReadMessageBegin()
	if err != nil {
		return
	}
	if mTypeId == thrift.EXCEPTION {
		error22 := thrift.NewTApplicationException(thrift.UNKNOWN_APPLICATION_EXCEPTION, "Unknown Exception")
		var error23 error
		error23, err = error22.Read(iprot)
		if err != nil {
			return
		}
		if err = iprot.ReadMessageEnd(); err != nil {
			return
		}
		err = error23
		return
	}
	if p.SeqId != seqId {
		err = thrift.NewTApplicationException(thrift.BAD_SEQUENCE_ID, "ping failed: out of sequence response")
		return
	}
	result21 := NewGetCounterResult()
	err = result21.Read(iprot)
	iprot.ReadMessageEnd()
	value = result21.Success
	return
}