Exemplo n.º 1
0
void
__bro_id_init(BroID *id)
{
  BroSObject *sobj = (BroSObject *) id;

  D_ENTER;

  /* First initialize parent */
  __bro_object_init((BroObject *) id);

  /* Now hook our callbacks into the vtable */
  sobj->read  = (BroSObjectRead) __bro_id_read;
  sobj->write = (BroSObjectWrite) __bro_id_write;
  sobj->free  = (BroSObjectFree) __bro_id_free;
  sobj->clone = (BroSObjectClone) __bro_id_clone;
  sobj->hash  = (BroSObjectHash) __bro_id_hash;
  sobj->cmp   = (BroSObjectCmp) __bro_id_cmp;

  sobj->type_id = SER_ID;

  /* And finally initialize our own stuff */
  bro_string_init(&id->name);
  id->type = __bro_type_new();

  /* For now we don't have attrs + val, these get
   * hooked in on demand.
   */
  D_RETURN;
}
Exemplo n.º 2
0
static void
__bro_val_init(BroVal *val)
{
  BroSObject *sobj = (BroSObject *) val;

  D_ENTER;

  __bro_object_init((BroObject *) val);

  sobj->read  = (BroSObjectRead) __bro_val_read;
  sobj->write = (BroSObjectWrite) __bro_val_write;
  sobj->free  = (BroSObjectFree) __bro_val_free;
  sobj->clone = (BroSObjectClone) __bro_val_clone;
  sobj->hash  = (BroSObjectHash) __bro_val_hash;
  sobj->cmp   = (BroSObjectCmp) __bro_val_cmp;

  /* Note: we don't know yet what type_id we'll be using since
   * that will depend on the type object hooked into this val.
   * We take care of that when we're serializing this val out
   * in that case.
   */
  sobj->type_id = SER_VAL;

  val->get_data = __bro_val_get;

  D_RETURN;
}