Skip to content

Instantly share code, notes, and snippets.

View aozturk's full-sized avatar

Abdullah Ozturk aozturk

  • London, United Kingdom
View GitHub Profile
class MyThreadFactory implements ThreadFactory {
private static final ThreadFactory defaultFactory = Executors.defaultThreadFactory();
private final Thread.UncaughtExceptionHandler handler;
public MyThreadFactory(Thread.UncaughtExceptionHandler handler) {
this.handler = handler;
}
@Override
public Thread newThread(Runnable run) {
final class MyTask implements Runnable {
@Override
public void run() {
System.out.println("My task is started running...");
// ...
throw new ArithmeticException();
// ...
}
}
class MyThreadPoolExecutor extends ThreadPoolExecutor {
public MyThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,
TimeUnit unit, BlockingQueue<Runnable> workQueue) {
super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
}
@Override
public void afterExecute(Runnable r, Throwable t) {
super.afterExecute(r, t);
// If submit() method is called instead of execute()
#include <iostream>
#include <assert.h>
#include "rocksdb/db.h"
using namespace std;
int main() {
rocksdb::DB* db;
rocksdb::Options options;
options.create_if_missing = true;
rocksdb::Slice key1 = "one";
rocksdb::Slice key2 = "two";
std::string bar = "bar";
db->Put(rocksdb::WriteOptions(), key1, bar);
std::string value;
rocksdb::Status s = db->Get(rocksdb::ReadOptions(), key1, &value);
if (s.ok()) {
// atomically apply a set of updates
rocksdb::Slice key1 = "one";
std::string bar = "bar";
rocksdb::WriteOptions write_options;
write_options.sync = true;
db->Put(write_options, key1, bar);
rocksdb::Slice key1 = "1";
rocksdb::Slice key2 = "2";
rocksdb::Slice key3 = "3";
std::string val1 = "one";
std::string val2 = "two";
std::string val3 = "three";
// populate the database with entries
db->Put(rocksdb::WriteOptions(), key1, val1);
db->Put(rocksdb::WriteOptions(), key2, val2);
rocksdb::Slice key1 = "1";
rocksdb::Slice key2 = "2";
std::string val1 = "one";
std::string val2 = "two";
// populate db first
db->Put(rocksdb::WriteOptions(), key1, val1);
db->Put(rocksdb::WriteOptions(), key2, val2);
rocksdb::ReadOptions readOptions;
class TwoPartComparator : public rocksdb::Comparator {
public:
// Three-way comparison function:
// if a < b: negative result
// if a > b: positive result
// else: zero result
int Compare(const rocksdb::Slice& a, const rocksdb::Slice& b) const {
int a1, a2, b1, b2;
ParseKey(a, &a1, &a2);
ParseKey(b, &b1, &b2);
class TestMsg : public AMS::IMsgObj {
public:
// give unique id to each message
TestMsg() : IMsgObj(/*msg id*/1) {}
// primitive types and string can be used
std::string name;
double value;
// other class objects can be composed
AdditionalInfo info;