Sensix
Wireless Sensor Network Middleware



   Home


   Project Page


   Download


   CVS




 Hosted by
Get SENSIX at SourceForge.net. Fast, secure 
and Free Open Source software downloads

/home/brennan/Software/sensix/source/discovery_service.c File Reference

SENSIX discovery service. More...

#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include "sensix.h"
#include "sense_impl.h"
#include "stacktrace.h"
#include "sense_endian.h"
#include "discovery_service.h"

Go to the source code of this file.

Classes

struct  listen_arguments

Defines

#define max(x, y)   (((x) < (y)) ? (y) : (x))
#define MEMORY_LIMIT   8096
#define MAX_RPT_ITVL   10
#define MAX_PARENTS   128
#define MAX_CHILDREN   512
#define MAX_SIBLINGS   128
#define MAX_CAPABLE   32
#define MAX_THREADS   (MAX_SIBLINGS + 1)
#define MAX_SOCKETS   2

Functions

void announceHeader (unsigned char *hdr)
void reportHeader (unsigned char *hdr)
void requireHeader (unsigned char *hdr)
void shareHeader (unsigned char *hdr, Share *shr)
void loadAnnounce (unsigned char *msg, Announce *ann)
void loadReport (unsigned char *msg, Report *rpt)
void loadRequire (unsigned char *msg, Require *req)
void loadShare (unsigned char *msg, Share *shr)
int parseDiscoverHeader (DiscoverHeader *hdr, unsigned char *bytes)
int parseDiscoverMessage (DiscoverMessage *dm, DiscoverHeader *hdr, unsigned char *bytes)
uint8_t self_level ()
uint32_t self_identifier ()
int self_capabilities (uint8_t *caps, size_t *size)
int self_register_object (uint8_t capability, object_reference_t *objref, bool_t override)
bool_t descendants_findNode (uint32_t id)
int descendants_queryNetwork (object_reference_t *objrefs, size_t *num, uint8_t capability)
int descendants_queryNode (object_reference_t *objref, uint32_t id, uint8_t capability)
int descendants_capabilities (uint8_t *caps, size_t *num)
int descendants_nodes (uint32_t *ids, size_t *num)
bool_t siblings_findNode (uint32_t id)
int siblings_queryNetwork (object_reference_t *objrefs, size_t *num, uint8_t capability)
int siblings_queryNode (object_reference_t *objref, uint32_t id, uint8_t capability)
int siblings_capabilities (uint8_t *caps, size_t *num)
int siblings_nodes (uint32_t *ids, size_t *num)
bool_t ancestors_findNode (uint32_t id)
int ancestors_nodes (uint32_t *ids, size_t *num)
bool_t family_findNode (uint32_t id)
int family_queryNetwork (object_reference_t *objrefs, size_t *num, uint8_t capability)
int family_queryNode (object_reference_t *objref, uint32_t id, uint8_t capability)
void * discovery_service (void *args)

Variables

pthread_mutex_t ancestor_mutex = PTHREAD_MUTEX_INITIALIZER
bool_t ancestors_running = false


Detailed Description

SENSIX discovery service.

Revision
1.12
Author
sean_m_brennan
Date
2009/07/12 02:05:31

Definition in file discovery_service.c.


Define Documentation

#define max ( x,
 )     (((x) < (y)) ? (y) : (x))

Definition at line 55 of file discovery_service.c.

#define MAX_CAPABLE   32

Definition at line 64 of file discovery_service.c.

#define MAX_CHILDREN   512

Definition at line 62 of file discovery_service.c.

#define MAX_PARENTS   128

Definition at line 61 of file discovery_service.c.

#define MAX_RPT_ITVL   10

Definition at line 59 of file discovery_service.c.

#define MAX_SIBLINGS   128

Definition at line 63 of file discovery_service.c.

#define MAX_SOCKETS   2

Definition at line 90 of file discovery_service.c.

#define MAX_THREADS   (MAX_SIBLINGS + 1)

Definition at line 65 of file discovery_service.c.

#define MEMORY_LIMIT   8096

Definition at line 58 of file discovery_service.c.


Function Documentation

bool_t ancestors_findNode ( uint32_t  id  ) 

Definition at line 926 of file discovery_service.c.

int ancestors_nodes ( uint32_t *  ids,
size_t *  num 
)

Definition at line 941 of file discovery_service.c.

void announceHeader ( unsigned char *  hdr  ) 

Definition at line 104 of file discovery_service.c.

int descendants_capabilities ( uint8_t *  caps,
size_t *  num 
)

Definition at line 756 of file discovery_service.c.

bool_t descendants_findNode ( uint32_t  id  ) 

Definition at line 672 of file discovery_service.c.

int descendants_nodes ( uint32_t *  ids,
size_t *  num 
)

Definition at line 776 of file discovery_service.c.

int descendants_queryNetwork ( object_reference_t objrefs,
size_t *  num,
uint8_t  capability 
)

Definition at line 687 of file discovery_service.c.

int descendants_queryNode ( object_reference_t objref,
uint32_t  id,
uint8_t  capability 
)

Definition at line 723 of file discovery_service.c.

void* discovery_service ( void *  args  ) 

Definition at line 1016 of file discovery_service.c.

bool_t family_findNode ( uint32_t  id  ) 

Definition at line 965 of file discovery_service.c.

int family_queryNetwork ( object_reference_t objrefs,
size_t *  num,
uint8_t  capability 
)

Definition at line 972 of file discovery_service.c.

int family_queryNode ( object_reference_t objref,
uint32_t  id,
uint8_t  capability 
)

Definition at line 994 of file discovery_service.c.

void loadAnnounce ( unsigned char *  msg,
Announce ann 
)

Definition at line 142 of file discovery_service.c.

void loadReport ( unsigned char *  msg,
Report rpt 
)

Definition at line 147 of file discovery_service.c.

void loadRequire ( unsigned char *  msg,
Require req 
)

Definition at line 153 of file discovery_service.c.

void loadShare ( unsigned char *  msg,
Share shr 
)

Definition at line 160 of file discovery_service.c.

int parseDiscoverHeader ( DiscoverHeader hdr,
unsigned char *  bytes 
)

Definition at line 229 of file discovery_service.c.

int parseDiscoverMessage ( DiscoverMessage dm,
DiscoverHeader hdr,
unsigned char *  bytes 
)

Definition at line 251 of file discovery_service.c.

void reportHeader ( unsigned char *  hdr  ) 

Definition at line 113 of file discovery_service.c.

void requireHeader ( unsigned char *  hdr  ) 

Definition at line 122 of file discovery_service.c.

int self_capabilities ( uint8_t *  caps,
size_t *  size 
)

Definition at line 617 of file discovery_service.c.

uint32_t self_identifier (  ) 

Definition at line 612 of file discovery_service.c.

uint8_t self_level (  ) 

Definition at line 607 of file discovery_service.c.

int self_register_object ( uint8_t  capability,
object_reference_t objref,
bool_t  override 
)

Definition at line 636 of file discovery_service.c.

void shareHeader ( unsigned char *  hdr,
Share shr 
)

Definition at line 131 of file discovery_service.c.

int siblings_capabilities ( uint8_t *  caps,
size_t *  num 
)

Definition at line 883 of file discovery_service.c.

bool_t siblings_findNode ( uint32_t  id  ) 

Definition at line 799 of file discovery_service.c.

int siblings_nodes ( uint32_t *  ids,
size_t *  num 
)

Definition at line 903 of file discovery_service.c.

int siblings_queryNetwork ( object_reference_t objrefs,
size_t *  num,
uint8_t  capability 
)

Definition at line 814 of file discovery_service.c.

int siblings_queryNode ( object_reference_t objref,
uint32_t  id,
uint8_t  capability 
)

Definition at line 850 of file discovery_service.c.


Variable Documentation

pthread_mutex_t ancestor_mutex = PTHREAD_MUTEX_INITIALIZER

Definition at line 68 of file discovery_service.c.

Definition at line 69 of file discovery_service.c.


© 2008, Los Alamos National Security, LLC.