/*
* 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; }
};
}
|