osquery-1/osquery/tables/registry.h
2014-08-05 01:21:28 -07:00

37 lines
711 B
C++

// Copyright 2004-present Facebook. All Rights Reserved.
#ifndef OSQUERY_TABLES_REGISTRY_H
#define OSQUERY_TABLES_REGISTRY_H
#include <memory>
#include "osquery/core/status.h"
#include "osquery/registry.h"
#include "osquery/sqlite3.h"
namespace osquery { namespace tables {
class TablePlugin {
public:
virtual int attachVtable(sqlite3 *db) { return -1; }
virtual ~TablePlugin() {};
protected:
TablePlugin() {};
};
void attachVirtualTables(sqlite3 *db);
}}
DECLARE_REGISTRY(
TablePlugins,
std::string,
std::shared_ptr<osquery::tables::TablePlugin>)
#define REGISTERED_TABLES REGISTRY(TablePlugins)
#define REGISTER_TABLE(name, decorator) \
REGISTER(TablePlugins, name, decorator)
#endif