The Assimilation Project
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
discovery.h File Reference

Semi-Abstract class (yes, really) defining discovery objects. More...

#include <projectcommon.h>
#include <assimobj.h>
#include <netgsource.h>
#include <configcontext.h>
Include dependency graph for discovery.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _Discovery
 Discovery class abstract C-class - it supports discovering "things" through subclasses for different kinds of things. More...
typedef struct _Discovery Discovery
WINEXPORT Discoverydiscovery_new (const char *, NetGSource *, ConfigContext *, gsize objsize)
 Discovery constructor. More...
WINEXPORT void discovery_register (Discovery *self)
 Function for registering a discovery object with the discovery infrastructure. More...
WINEXPORT void discovery_unregister_all (void)
 Unregister all discovery methods in preparation for shutting down - to make valgrind happy :-D. More...
WINEXPORT void discovery_unregister (const char *)

Detailed Description

Semi-Abstract class (yes, really) defining discovery objects.

It is only instantiated by derived classes. The basic idea of the Discovery base class is that we will want to discover a number of things locally and the way we can keep track of all the kinds of things we can discover, how often we should poll to re-discover them and so on is through this common base class.

We may also eventually add some class-common caching routines as well.

Examples of things we probably eventually want to discover are:

  • Local switch configuration (LLDP/CDP) - implemented by the SwitchDiscovery class.
  • Local peers through the ARP cache (or whatever is analogous for ipv6)
  • Local network configuration (via ifconfig/ip et al)
  • Local network port usage
  • Local services running

This file is part of the Assimilation Project.

Copyright © 2011, 2012 - Alan Robertson
The Assimilation software is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The Assimilation software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the Assimilation Project software. If not, see

Definition in file discovery.h.