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

Implements Configuration Context class. More...

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

Go to the source code of this file.

Data Structures

struct  _ConfigValue
 
struct  _ConfigContext
 
#define CONFIG_DEFAULT_DEADTIME   30
 Default "deadtime". More...
 
#define CONFIG_DEFAULT_HBTIME   3
 Default heartbeat interval. More...
 
#define CONFIG_DEFAULT_WARNTIME   10
 Default warning time. More...
 
#define CONFIG_DEFAULT_HBPORT   1984
 Default Heartbeat port. More...
 
#define CONFIG_DEFAULT_CMAPORT   1984
 Default CMA port. More...
 
#define CONFIG_DEFAULT_ADDR   {127,0,0,1}
 
#define CONFIG_DEFAULT_ADDRTYPE   ADDR_FAMILY_IPV4
 
#define CONFIG_DEFAULT_SIGNFRAME_TYPE   G_CHECKSUM_SHA256
 
#define CONFIGNAME_DEADTIME   "deadtime"
 How long w/o heartbeats before declaring a system dead? More...
 
#define CONFIGNAME_WARNTIME   "warntime"
 How long w/o heartbeats before whining? More...
 
#define CONFIGNAME_HBTIME   "hbtime"
 How long to wait between heartbeats? More...
 
#define CONFIGNAME_HBPORT   "hbport"
 Default Port for sending heartbeats. More...
 
#define CONFIGNAME_CMAPORT   "cmaport"
 Default Port for contacting the CMA. More...
 
#define CONFIGNAME_CMAINIT   "cmainit"
 Initial startup contact address for the CMA. More...
 
#define CONFIGNAME_CMAADDR   "cmaaddr"
 Address of the Collective Management authority. More...
 
#define CONFIGNAME_CMADISCOVER   "cmadisc"
 Address of where to send discovery reports. More...
 
#define CONFIGNAME_CMAFAIL   "cmafail"
 Address of where to send failure reports. More...
 
#define CONFIGNAME_OUTSIG   "outsig"
 SignFrame to use to sign/verify packets. More...
 
#define CONFIGNAME_CRYPT   "crypt"
 Frame to use for encrypting/decrypting packets. More...
 
#define CONFIGNAME_COMPRESS   "compress"
 Frame to use for compressing/decompressing. More...
 
#define CONFIGINTDEFAULTS
 Default values for some (integer) configuration values. More...
 
enum  ConfigValType {
  CFG_EEXIST, CFG_NULL, CFG_BOOL, CFG_INT64,
  CFG_STRING, CFG_FLOAT, CFG_ARRAY, CFG_CFGCTX,
  CFG_NETADDR, CFG_FRAME
}
 
typedef struct _ConfigContext ConfigContext
 This is the base ConfigContext class object providing configuration context for our clients, and is managed by our C-Class Management system. More...
 
typedef struct _ConfigValue ConfigValue
 
WINEXPORT ConfigContextconfigcontext_new (gsize objsize)
 Construct a new ConfigContext object - with no values defaulted. More...
 
WINEXPORT ConfigContextconfigcontext_new_JSON_string (const char *jsontext)
 Construct a ConfigContext object from the given JSON string. More...
 

Detailed Description

Implements Configuration Context class.

This class holds all the information concerning our basic configuration - things like our signature SignFrame class, the public key of our master, and the address of the Collective Management Authority and so on...

This file is part of the Assimilation Project.

Author
Copyright © 2011, 2012 - Alan Robertson alanr.nosp@m.@uni.nosp@m.x.sh
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 http://www.gnu.org/licenses/

Definition in file configcontext.h.

Macro Definition Documentation

#define CONFIG_DEFAULT_ADDR   {127,0,0,1}

Definition at line 106 of file configcontext.h.

#define CONFIG_DEFAULT_ADDRTYPE   ADDR_FAMILY_IPV4

Definition at line 107 of file configcontext.h.

#define CONFIG_DEFAULT_CMAPORT   1984

Default CMA port.

Definition at line 105 of file configcontext.h.

#define CONFIG_DEFAULT_DEADTIME   30

Default "deadtime".

Definition at line 101 of file configcontext.h.

#define CONFIG_DEFAULT_HBPORT   1984

Default Heartbeat port.

Definition at line 104 of file configcontext.h.

#define CONFIG_DEFAULT_HBTIME   3

Default heartbeat interval.

Definition at line 102 of file configcontext.h.

#define CONFIG_DEFAULT_SIGNFRAME_TYPE   G_CHECKSUM_SHA256

Definition at line 108 of file configcontext.h.

#define CONFIG_DEFAULT_WARNTIME   10

Default warning time.

Definition at line 103 of file configcontext.h.

#define CONFIGINTDEFAULTS
#define CONFIGNAME_CMAADDR   "cmaaddr"

Address of the Collective Management authority.

Definition at line 117 of file configcontext.h.

Referenced by main(), and nano_reqconfig().

#define CONFIGNAME_CMADISCOVER   "cmadisc"

Address of where to send discovery reports.

Definition at line 118 of file configcontext.h.

Referenced by _jsondiscovery_discover(), _jsondiscovery_send(), _switchdiscovery_dispatch(), main(), and nano_reqconfig().

#define CONFIGNAME_CMAFAIL   "cmafail"

Address of where to send failure reports.

Definition at line 119 of file configcontext.h.

Referenced by main(), nano_reqconfig(), and nanoobey_setconfig().

#define CONFIGNAME_CMAINIT   "cmainit"

Initial startup contact address for the CMA.

(could be a multicast address)

Definition at line 115 of file configcontext.h.

Referenced by main(), and nano_reqconfig().

#define CONFIGNAME_CMAPORT   "cmaport"

Default Port for contacting the CMA.

Definition at line 114 of file configcontext.h.

Referenced by main(), and nano_reqconfig().

#define CONFIGNAME_COMPRESS   "compress"

Frame to use for compressing/decompressing.

Definition at line 122 of file configcontext.h.

Referenced by netio_new().

#define CONFIGNAME_CRYPT   "crypt"

Frame to use for encrypting/decrypting packets.

Definition at line 121 of file configcontext.h.

Referenced by netio_new().

#define CONFIGNAME_DEADTIME   "deadtime"

How long w/o heartbeats before declaring a system dead?

Definition at line 110 of file configcontext.h.

Referenced by create_sendexpecthb(), main(), and nanoobey_expecthb().

#define CONFIGNAME_HBPORT   "hbport"

Default Port for sending heartbeats.

Definition at line 113 of file configcontext.h.

Referenced by main().

#define CONFIGNAME_HBTIME   "hbtime"

How long to wait between heartbeats?

Definition at line 112 of file configcontext.h.

Referenced by create_sendexpecthb(), main(), and nanoobey_sendhb().

#define CONFIGNAME_OUTSIG   "outsig"

SignFrame to use to sign/verify packets.

Definition at line 120 of file configcontext.h.

Referenced by main(), and netio_new().

#define CONFIGNAME_WARNTIME   "warntime"

How long w/o heartbeats before whining?

Definition at line 111 of file configcontext.h.

Referenced by create_sendexpecthb(), and nanoobey_expecthb().

Typedef Documentation

typedef struct _ConfigValue ConfigValue

Definition at line 56 of file configcontext.h.

Enumeration Type Documentation

Enumerator
CFG_EEXIST 
CFG_NULL 
CFG_BOOL 
CFG_INT64 
CFG_STRING 
CFG_FLOAT 
CFG_ARRAY 
CFG_CFGCTX 
CFG_NETADDR 
CFG_FRAME 

Definition at line 44 of file configcontext.h.