| /** | 
 |  * fb303.thrift | 
 |  * | 
 |  * Copyright (c) 2006- Facebook | 
 |  * Distributed under the Thrift Software License | 
 |  * | 
 |  * See accompanying file LICENSE or visit the Thrift site at: | 
 |  * http://developers.facebook.com/thrift/ | 
 |  * | 
 |  * | 
 |  * Definition of common Facebook data types and status reporting mechanisms | 
 |  * common to all Facebook services. In some cases, these methods are | 
 |  * provided in the base implementation, and in other cases they simply define | 
 |  * methods that inheriting applications should implement (i.e. status report) | 
 |  * | 
 |  * @author Mark Slee <mcslee@facebook.com> | 
 |  */ | 
 |  | 
 | include "thrift/if/reflection_limited.thrift" | 
 |  | 
 | namespace java com.facebook.fb303 | 
 | namespace cpp facebook.fb303 | 
 |  | 
 | /** | 
 |  * Common status reporting mechanism across all services | 
 |  */ | 
 | enum fb_status { | 
 |   DEAD = 0, | 
 |   STARTING = 1, | 
 |   ALIVE = 2, | 
 |   STOPPING = 3, | 
 |   STOPPED = 4, | 
 |   WARNING = 5, | 
 | } | 
 |  | 
 | /** | 
 |  * Standard base service | 
 |  */ | 
 | service FacebookService { | 
 |  | 
 |   /** | 
 |    * Returns a descriptive name of the service | 
 |    */ | 
 |   string getName(), | 
 |  | 
 |   /** | 
 |    * Returns the version of the service | 
 |    */ | 
 |   string getVersion(), | 
 |  | 
 |   /** | 
 |    * Gets the status of this service | 
 |    */ | 
 |   fb_status getStatus(), | 
 |  | 
 |   /** | 
 |    * User friendly description of status, such as why the service is in | 
 |    * the dead or warning state, or what is being started or stopped. | 
 |    */ | 
 |   string getStatusDetails(), | 
 |  | 
 |   /** | 
 |    * Gets the counters for this service | 
 |    */ | 
 |   map<string, i64> getCounters(), | 
 |  | 
 |   /** | 
 |    * Gets the value of a single counter | 
 |    */ | 
 |   i64 getCounter(1: string key), | 
 |  | 
 |   /** | 
 |    * Sets an option | 
 |    */ | 
 |   void setOption(1: string key, 2: string value), | 
 |  | 
 |   /** | 
 |    * Gets an option | 
 |    */ | 
 |   string getOption(1: string key), | 
 |  | 
 |   /** | 
 |    * Gets all options | 
 |    */ | 
 |   map<string, string> getOptions(), | 
 |  | 
 |   /** | 
 |    * Returns a CPU profile over the given time interval (client and server | 
 |    * must agree on the profile format). | 
 |    */ | 
 |   string getCpuProfile(1: i32 profileDurationInSec), | 
 |  | 
 |   /** | 
 |    * Returns the unix time that the server has been running since | 
 |    */ | 
 |   i64 aliveSince(), | 
 |  | 
 |   /** | 
 |    * Returns a limited description of this service. | 
 |    */ | 
 |   reflection_limited.Service | 
 |   getLimitedReflection(), | 
 |  | 
 |   /** | 
 |    * Tell the server to reload its configuration, reopen log files, etc | 
 |    */ | 
 |   async void reinitialize(), | 
 |  | 
 |   /** | 
 |    * Suggest a shutdown to the server | 
 |    */ | 
 |   async void shutdown(), | 
 |  | 
 | } |