Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

event.h File Reference


Detailed Description

Define events.

#include <sys/bitypes.h>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>
#include <string.h>
#include "util.h"
#include "address.h"

Go to the source code of this file.

Data Structures

struct  aw_event_q_t
struct  aw_event_s
struct  aw_event_sig_t
struct  aw_event_xactioninfo_t

Defines

#define AW_EVENT_NET_FMTVERSION   2
#define AW_EVENT_NET_MAXSIZE   0xffff
#define AW_EVENT_SIGNAME_SIZE   64
#define AW_TIMESTAMP_PER_SEC   ((aw_timestamp_t)1000000)

Typedefs

typedef aw_event_s aw_event_t
typedef int64_t aw_timestamp_t

Enumerations

enum  aw_event_context_t { AW_EVENT_CONTEXT_CONTROL, AW_EVENT_CONTEXT_ALARM, AW_EVENT_CONTEXT_HANDLER, AW_EVENT_CONTEXT_EXTERNAL }
enum  aw_event_payload_t {
  AW_EVENT_TYPE_UNKNOWN, AW_EVENT_TYPE_MON_ADD_ALARM, AW_EVENT_TYPE_MON_REMOVE_ALARM, AW_EVENT_TYPE_MON_ADD_HANDLER_FDCALLBACK,
  AW_EVENT_TYPE_MON_REMOVE_HANDLER_FDCALLBACK, AW_EVENT_TYPE_MON_ADD_HANDLER_IRECALLBACK, AW_EVENT_TYPE_MON_REMOVE_HANDLER_IRECALLBACK, AW_EVENT_TYPE_MON_ADD_HANDLER,
  AW_EVENT_TYPE_MON_REMOVE_HANDLER, AW_EVENT_TYPE_INT32, AW_EVENT_TYPE_INT64, AW_EVENT_TYPE_TIMESTAMP,
  AW_EVENT_TYPE_FLOAT32, AW_EVENT_TYPE_FLOAT64, AW_EVENT_TYPE_STRING, AW_EVENT_TYPE_PTR,
  AW_EVENT_NTYPES
}

Functions

void aw_clear_q (aw_event_q_t *q)
 Destroy all events, use factory if f != NULL, clear q.

aw_event_t * aw_create_event (aw_event_context_t context, aw_cache_allocator_t *f)
 Create an event, use factory if f != NULL.

void aw_destroy_event (aw_event_t *e)
 Destroy an event, use factory if f != NULL.

aw_event_t * aw_dup_event (const aw_event_t *e, aw_cache_allocator_t *f)
 Duplicate an event, use factory if f != NULL.

int32_t aw_event2n (aw_event_t *e, int32_t size, byte_t *buffer)
 Convert an event into network format, copy into buffer.

void aw_event_format (aw_event_t *e, byte_t *format, byte_t *s, u_int32_t size)
 Fill s with format, replacing: $v with event value, $n with event name, $p with event priority, $t with timestamp.

const aw_event_t * aw_findin_q (const aw_event_t *e, const aw_event_q_t *q)
 Search for matching event in q (mamcmp all but next ptr).

int32_t aw_n2event (aw_event_t *e, const byte_t *buffer)
 Fill an event from buffer with data in event network format. NOTE: e->sig.id must filled by caller!


Define Documentation

#define AW_EVENT_NET_FMTVERSION   2
 

#define AW_EVENT_NET_MAXSIZE   0xffff
 

#define AW_EVENT_SIGNAME_SIZE   64
 

#define AW_TIMESTAMP_PER_SEC   ((aw_timestamp_t)1000000)
 


Typedef Documentation

typedef struct aw_event_s aw_event_t
 

Basic event

aw_timestamp_t
 

units = usec


Enumeration Type Documentation

enum aw_event_context_t
 

Enumeration values:
AW_EVENT_CONTEXT_CONTROL  generated from monitor for control
AW_EVENT_CONTEXT_ALARM  generated from a handler alarm
AW_EVENT_CONTEXT_HANDLER  generated from a handler (for other handlers)
AW_EVENT_CONTEXT_EXTERNAL  generated from a outside handler (for other handlers)

enum aw_event_payload_t
 

Types of payloads

Enumeration values:
AW_EVENT_TYPE_UNKNOWN 
AW_EVENT_TYPE_MON_ADD_ALARM 
AW_EVENT_TYPE_MON_REMOVE_ALARM 
AW_EVENT_TYPE_MON_ADD_HANDLER_FDCALLBACK 
AW_EVENT_TYPE_MON_REMOVE_HANDLER_FDCALLBACK 
AW_EVENT_TYPE_MON_ADD_HANDLER_IRECALLBACK 
AW_EVENT_TYPE_MON_REMOVE_HANDLER_IRECALLBACK 
AW_EVENT_TYPE_MON_ADD_HANDLER 
AW_EVENT_TYPE_MON_REMOVE_HANDLER 
AW_EVENT_TYPE_INT32 
AW_EVENT_TYPE_INT64 
AW_EVENT_TYPE_TIMESTAMP 
AW_EVENT_TYPE_FLOAT32 
AW_EVENT_TYPE_FLOAT64 
AW_EVENT_TYPE_STRING 
AW_EVENT_TYPE_PTR 
AW_EVENT_NTYPES 


Function Documentation

void aw_clear_q (  aw_event_q_t *  q  ) 
 

Destroy all events, use factory if f != NULL, clear q.

Parameters:
q Queue ptr

aw_event_t* aw_create_event (  aw_event_context_t  context,
aw_cache_allocator_t *  f
) 
 

Create an event, use factory if f != NULL.

Parameters:
context Where this was generated
f Event cache allocator
Returns:
Event ptr

void aw_destroy_event (  aw_event_t *  e  ) 
 

Destroy an event, use factory if f != NULL.

Parameters:
e Event ptr

aw_event_t* aw_dup_event (  const aw_event_t *  e,
aw_cache_allocator_t *  f
) 
 

Duplicate an event, use factory if f != NULL.

Parameters:
e Event ptr
f Event cache allocator
Returns:
Event ptr

int32_t aw_event2n (  aw_event_t *  e,
int32_t  size,
byte_t *  buffer
) 
 

Convert an event into network format, copy into buffer.

number of bytes on success, -1 if cannot

void aw_event_format (  aw_event_t *  e,
byte_t *  format,
byte_t *  s,
u_int32_t  size
) 
 

Fill s with format, replacing: $v with event value, $n with event name, $p with event priority, $t with timestamp.

Parameters:
e Event
format Format string
s Destination string
size Size of destination string

const aw_event_t* aw_findin_q (  const aw_event_t *  e,
const aw_event_q_t *  q
) 
 

Search for matching event in q (mamcmp all but next ptr).

Parameters:
e Event ptr
q Queue ptr
Returns:
Matched event

int32_t aw_n2event (  aw_event_t *  e,
const byte_t *  buffer
) 
 

Fill an event from buffer with data in event network format. NOTE: e->sig.id must filled by caller!

0 on success, -1 if cannot. NOTE: e->sig.id must filled by caller!

Aware 0.11.1 Copyright (C) 1998-2005 Russell Leighton (russ@elegant-software.com)