~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/event_observer.h

  • Committer: Brian Aker
  • Date: 2010-10-10 19:32:58 UTC
  • Revision ID: brian@tangent.org-20101010193258-uvwhrqqpbd2e065x
Added support for pre/post triggers (this removes the need for the current
logging system I believe).

Add test cases to existing triggers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
      /* Session events: */
75
75
      BEFORE_CREATE_DATABASE, AFTER_CREATE_DATABASE, 
76
76
      BEFORE_DROP_DATABASE,   AFTER_DROP_DATABASE,
 
77
      CONNECT_SESSION,
 
78
      DISCONNECT_SESSION,
 
79
      AFTER_STATEMENT,
 
80
      BEFORE_STATEMENT,
77
81
 
78
82
      /* Schema events: */
79
83
      BEFORE_DROP_TABLE,   AFTER_DROP_TABLE, 
134
138
      case AFTER_DROP_DATABASE:
135
139
        return "AFTER_DROP_DATABASE";
136
140
 
 
141
      case CONNECT_SESSION:
 
142
        return "CONNECT_SESSION";
 
143
 
 
144
      case DISCONNECT_SESSION:
 
145
        return "DISCONNECT_SESSION";
 
146
 
 
147
      case AFTER_STATEMENT:
 
148
        return "AFTER_STATEMENT";
 
149
 
 
150
      case BEFORE_STATEMENT:
 
151
        return "BEFORE_STATEMENT";
 
152
 
137
153
      case MAX_EVENT_COUNT:
138
154
        break;
139
155
      }
204
220
    static bool afterDropTable(Session &session, const drizzled::TableIdentifier &table, int err);
205
221
    static bool beforeRenameTable(Session &session, const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to);
206
222
    static bool afterRenameTable(Session &session, const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to, int err);
 
223
    static bool connectSession(Session &session);
 
224
    static bool disconnectSession(Session &session);
 
225
    static bool beforeStatement(Session &session);
 
226
    static bool afterStatement(Session &session);
207
227
 
208
228
    /*==========================================================*/
209
229
    /* Static meathods called by drizzle to notify interested plugins 
357
377
};
358
378
 
359
379
//-----
 
380
class ConnectSessionEventData: public SessionEventData
 
381
{
 
382
public:
 
383
 
 
384
  ConnectSessionEventData(Session &session_arg):
 
385
    SessionEventData(EventObserver::CONNECT_SESSION, session_arg)
 
386
  {}  
 
387
};
 
388
 
 
389
//-----
 
390
class DisconnectSessionEventData: public SessionEventData
 
391
{
 
392
public:
 
393
 
 
394
  DisconnectSessionEventData(Session &session_arg):
 
395
    SessionEventData(EventObserver::DISCONNECT_SESSION, session_arg)
 
396
  {}  
 
397
};
 
398
 
 
399
//-----
 
400
class BeforeStatementEventData: public SessionEventData
 
401
{
 
402
public:
 
403
 
 
404
  BeforeStatementEventData(Session &session_arg):
 
405
    SessionEventData(EventObserver::BEFORE_STATEMENT, session_arg)
 
406
  {}  
 
407
};
 
408
 
 
409
//-----
 
410
class AfterStatementEventData: public SessionEventData
 
411
{
 
412
public:
 
413
 
 
414
  AfterStatementEventData(Session &session_arg):
 
415
    SessionEventData(EventObserver::AFTER_STATEMENT, session_arg)
 
416
  {}  
 
417
};
 
418
 
 
419
//-----
360
420
class BeforeDropTableEventData: public SchemaEventData
361
421
{
362
422
public: