opennebula-update-hook.patch

Simon Boulet, 07/05/2013 06:20 PM

Download (2.47 KB)

View differences:

include/Hook.h
164 164

  
165 165
/**
166 166
 *  This class is general ObjectSQL Remove Hook that executes a command
167
 *  when the ObjectSQL is inserted in the database.
167
 *  when the ObjectSQL is deleted from the database.
168 168
 */
169 169
class RemoveHook : public AllocateRemoveHook
170 170
{
171 171
public:
172 172
    // -------------------------------------------------------------------------
173
    // Init a hook of ALLOCATE type
173
    // Init a hook of REMOVE type
174 174
    // -------------------------------------------------------------------------
175 175
    RemoveHook(const string& name,
176 176
               const string& cmd,
......
182 182
};
183 183

  
184 184
/**
185
 *  This class is general ObjectSQL Update Hook that executes a command
186
 *  when the ObjectSQL is updated from the database.
187
 */
188
class UpdateHook : public AllocateRemoveHook
189
{
190
public:
191
    // -------------------------------------------------------------------------
192
    // Init a hook of UPDATE type
193
    // -------------------------------------------------------------------------
194
    UpdateHook(const string& name,
195
               const string& cmd,
196
               const string& args,
197
               bool          remote):
198
        AllocateRemoveHook(name, cmd, args, Hook::UPDATE, remote){};
199

  
200
    virtual ~UpdateHook(){};
201
};
202

  
203
/**
185 204
 *  Objects that inherits from hookable will allow others to hook into it. The
186 205
 *  Hookable interface handles the list of hooks and provide a method to invoke
187 206
 *  the hooks.
src/pool/PoolSQL.cc
754 754

  
755 755
            add_hook(hook);
756 756
        }
757
        else if ( on == "UPDATE" )
758
        {
759
            UpdateHook * hook;
760

  
761
            hook = new UpdateHook(name, cmd, arg, false);
762

  
763
            add_hook(hook);
764
        }
757 765
    }
758 766
}
759
-