// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// A table of network states, to be included when building tabular things.
//
// This file is used to construct two things: an enumerated type in
// metrics_daemon.h, and a table of structures with state names in
// metrics_daemon.cc.  Including this file ensures that the two tables are
// always in sync (and saves typing).  I don't know of other ways of achieving
// the same result in C/C++, but it doesn't mean there isn't one.

// Before you include this file, define STATE to do something useful, or else
// if will be a no-op.  STATE will be undefined on exit.  Don't worry about
// collisions for the STATE macro (as long as it's a macro) because the
// compiler will flag them---in that case, just change the name.  If someone is
// misguided enough to use STATE for something other than a macro, the error
// messages will be slightly more complicated.


#ifndef STATE
#define STATE(name, capname)
#endif

STATE(offline, Offline)
STATE(online, Online)

#undef STATE
