SOL9 2.0 Class: CallbackEntry

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * CallbackEntry.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
#pragma once

#include <sol\Entry.h>
#include <sol\Action.h>


namespace SOL {

typedef void (Object::*Callback)(Action&);

class CallbackEntry :public Entry {
private:
    const TCHAR*    name;
    Key           key;
    Callback    callback;
    CallbackEntry*     next;

public:
    CallbackEntry(const TCHAR* name1, const Key k, Object* object, 
              Callback proc, void* data) 
    :Entry(object, data),
      name(name1), 
      key(k),
      callback(proc),
      next(NULL)
    {

    }

public:
    void call(Action& action)
    {
        Object* object = getObject();
        action.setData(getData());
        (object->*callback)(action);
    }

    void     add(CallbackEntry* entry) { next = entry; }

    Key        getKey(){ return key; }
    const TCHAR* getName() { return name; }
    CallbackEntry* getNext() { return next; }
};

}



Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.