Migrated shared_key to INIT/METHOD macros
authorAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 29 Sep 2011 20:17:38 +0000 (22:17 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 29 Sep 2011 20:17:38 +0000 (22:17 +0200)
src/libstrongswan/credentials/keys/shared_key.c

index f695c07..1c2d311 100644 (file)
@@ -51,35 +51,27 @@ struct private_shared_key_t {
        refcount_t ref;
 };
 
-/**
- * Implements shared_key_t.get_type
- */
-static shared_key_type_t get_type(private_shared_key_t *this)
+METHOD(shared_key_t, get_type, shared_key_type_t,
+       private_shared_key_t *this)
 {
        return this->type;
 }
 
-/**
- * Implements shared_key_t.get_key
- */
-static chunk_t get_key(private_shared_key_t *this)
+METHOD(shared_key_t, get_key, chunk_t,
+       private_shared_key_t *this)
 {
        return this->key;
 }
 
-/**
- * Implements shared_key_t.get_ref
- */
-static shared_key_t* get_ref(private_shared_key_t *this)
+METHOD(shared_key_t, get_ref, shared_key_t*,
+       private_shared_key_t *this)
 {
        ref_get(&this->ref);
        return &this->public;
 }
 
-/**
- * Implementation of shared_key_t.destroy
- */
-static void destroy(private_shared_key_t *this)
+METHOD(shared_key_t, destroy, void,
+       private_shared_key_t *this)
 {
        if (ref_put(&this->ref))
        {
@@ -93,16 +85,19 @@ static void destroy(private_shared_key_t *this)
  */
 shared_key_t *shared_key_create(shared_key_type_t type, chunk_t key)
 {
-       private_shared_key_t *this = malloc_thing(private_shared_key_t);
-
-       this->public.get_type = (shared_key_type_t (*)(shared_key_t *this))get_type;
-       this->public.get_key = (chunk_t (*)(shared_key_t *this))get_key;
-       this->public.get_ref = (shared_key_t* (*)(shared_key_t *this))get_ref;
-       this->public.destroy = (void(*)(shared_key_t*))destroy;
-
-       this->type = type;
-       this->key = key;
-       this->ref = 1;
+       private_shared_key_t *this;
+
+       INIT(this,
+               .public = {
+                       .get_type = _get_type,
+                       .get_key = _get_key,
+                       .get_ref = _get_ref,
+                       .destroy = _destroy,
+               },      
+               .type = type,
+               .key = key,
+               .ref = 1,
+       );
 
        return &this->public;
 }