Linux evo.fastest-server.com 5.14.0-284.1101.el9.tuxcare.11.els11.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 14 13:30:35 UTC 2026 x86_64
LiteSpeed
Server IP : 103.249.112.113 & Your IP : 216.73.217.135
Domains : 988 Domain
User : tanishks
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
firebird /
sample /
interfaces /
Delete
Unzip
Name
Size
Permission
Date
Action
01.create.cpp
4.53
KB
-rw-r--r--
2026-04-17 16:36
01.create.pas
4.38
KB
-rw-r--r--
2026-04-17 16:36
02.update.cpp
5.59
KB
-rw-r--r--
2026-04-17 16:36
03.select.cpp
5.34
KB
-rw-r--r--
2026-04-17 16:36
04.print_table.cpp
6.04
KB
-rw-r--r--
2026-04-17 16:36
05.user_metadata.cpp
6.52
KB
-rw-r--r--
2026-04-17 16:36
06.fb_message.cpp
4.27
KB
-rw-r--r--
2026-04-17 16:36
07.blob.cpp
4.96
KB
-rw-r--r--
2026-04-17 16:36
08.events.cpp
4.35
KB
-rw-r--r--
2026-04-17 16:36
09.service.cpp
4.98
KB
-rw-r--r--
2026-04-17 16:36
10.backup.cpp
4.66
KB
-rw-r--r--
2026-04-17 16:36
11.batch.cpp
15.69
KB
-rw-r--r--
2026-04-17 16:36
12.batch_isc.cpp
8.28
KB
-rw-r--r--
2026-04-17 16:36
13.null_pk.cpp
3.9
KB
-rw-r--r--
2026-04-17 16:36
14.restore.cpp
4.32
KB
-rw-r--r--
2026-04-17 16:36
ifaceExamples.h
1.25
KB
-rw-r--r--
2026-04-17 16:36
Save
Rename
/* * PROGRAM: Object oriented API samples. * MODULE: 08.events.cpp * DESCRIPTION: A sample of working with events. * * Example for the following interfaces: * IEvents - returned by queEvents(), used to cancel events monitoring * IEventCallback - it's callback is invoked when event happens * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Initial Developer of the Original Code is Adriano dos Santos Fernandes. * Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. * All Rights Reserved. * * Contributor(s): * Alexander Peshkov */ #include "ifaceExamples.h" #ifndef WIN32 #include <unistd.h> #else #include <windows.h> #endif static IMaster* master = fb_get_master_interface(); namespace { // This class encapsulates single event handling class Event : public IEventCallbackImpl<Event, ThrowStatusWrapper> { public: Event(IAttachment* aAttachment, const char* name) : refCounter(0), attachment(aAttachment), counter(0), status(master->getStatus()), events(NULL), first(true) { eveLen = isc_event_block(&eveBuffer, &eveResult, 1, name); events = attachment->queEvents(&status, this, eveLen, eveBuffer); } void process(int pass) { if (!events) return; ISC_ULONG tot = 0; if (counter) { isc_event_counts(&tot, eveLen, eveBuffer, eveResult); events->release(); events = NULL; counter = 0; events = attachment->queEvents(&status, this, eveLen, eveBuffer); } if (tot && !first) printf("Event count on pass %d is %d\n", pass, tot); else printf("Pass %d - no events\n", pass); first = false; } // IEventCallback implementation void eventCallbackFunction(unsigned int length, const ISC_UCHAR* data) { memcpy(eveResult, data, length); ++counter; if (!first) printf("AST called\n"); } // refCounted implementation virtual void addRef() { ++refCounter; } virtual int release() { if (--refCounter == 0) { delete this; return 0; } else return 1; } private: ~Event() { if (events) events->release(); if (eveBuffer) isc_free((char*) eveBuffer); if (eveResult) isc_free((char*) eveResult); status.dispose(); } FbSampleAtomic refCounter; IAttachment* attachment; volatile int counter; ThrowStatusWrapper status; IEvents* events; unsigned char* eveBuffer; unsigned char* eveResult; unsigned eveLen; bool first; }; } int main() { int rc = 0; // set default password if none specified in environment setenv("ISC_USER", "sysdba", 0); setenv("ISC_PASSWORD", "masterkey", 0); // With ThrowStatusWrapper passed as status interface FbException will be thrown on error ThrowStatusWrapper status(master->getStatus()); // Declare pointers to required interfaces IProvider* prov = master->getDispatcher(); IAttachment* att = NULL; ITransaction* tra = NULL; Event* event = NULL; try { // attach database att = prov->attachDatabase(&status, "employee", 0, NULL); // register an event event = new Event(att, "EVENT1"); event->addRef(); const char cmdBlock[] = "execute block as begin post_event 'EVENT1'; end"; for (int i = 0; i < 3; ++i) { #ifndef WIN32 sleep(1); // sec #else Sleep(1000); // msec #endif event->process(i); tra = att->startTransaction(&status, 0, NULL); att->execute(&status, tra, 0, cmdBlock, SAMPLES_DIALECT, NULL, NULL, NULL, NULL); tra->commit(&status); tra = NULL; } // cleanup event->release(); event = NULL; att->detach(&status); att = NULL; } catch (const FbException& error) { // handle error rc = 1; char buf[256]; master->getUtilInterface()->formatStatus(buf, sizeof(buf), error.getStatus()); fprintf(stderr, "%s\n", buf); } // release interfaces after error caught if (event) event->release(); if (tra) tra->release(); if (att) att->release(); // generic cleanup prov->release(); status.dispose(); return rc; }