|  | /* | 
|  | * Licensed to the Apache Software Foundation (ASF) under one | 
|  | * or more contributor license agreements. See the NOTICE file | 
|  | * distributed with this work for additional information | 
|  | * regarding copyright ownership. The ASF licenses this file | 
|  | * to you under the Apache License, Version 2.0 (the | 
|  | * "License"); you may not use this file except in compliance | 
|  | * with the License. You may obtain a copy of the License at | 
|  | * | 
|  | *   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, | 
|  | * software distributed under the License is distributed on an | 
|  | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | * KIND, either express or implied. See the License for the | 
|  | * specific language governing permissions and limitations | 
|  | * under the License. | 
|  | */ | 
|  |  | 
|  | /** | 
|  | * fb303.thrift | 
|  | */ | 
|  |  | 
|  | namespace java com.facebook.fb303 | 
|  | namespace cpp facebook.fb303 | 
|  | namespace perl 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(), | 
|  |  | 
|  | /** | 
|  | * Tell the server to reload its configuration, reopen log files, etc | 
|  | */ | 
|  | oneway void reinitialize(), | 
|  |  | 
|  | /** | 
|  | * Suggest a shutdown to the server | 
|  | */ | 
|  | oneway void shutdown(), | 
|  |  | 
|  | } |