using namespace sparksee::gdb;
int main(int argc, char *argv[])
{SparkseeConfig cfg;
cfg.SetCacheMaxSize(1024);
Sparksee *sparksee = new Sparksee(cfg);
Database * db = sparksee->Create(L"boh.gdb", L"boh");
Session * sess = db->NewSession();
Graph * graph = sess->GetGraph();
type_t peopleTypeId = graph->NewNodeType(L"PEOPLE");
type_t friendTypeId = graph->NewEdgeType(L"FRIEND", true, true);
oid_t peoplev1 = graph->NewNode(peopleTypeId);
oid_t peoplev2 = graph->NewNode(peopleTypeId);
oid_t peoplev3 = graph->NewNode(peopleTypeId);
oid_t peoplev4 = graph->NewNode(peopleTypeId);
oid_t peoplev5 = graph->NewNode(peopleTypeId);
oid_t peoplev6 = graph->NewNode(peopleTypeId);
oid_t peoplev7 = graph->NewNode(peopleTypeId);
oid_t friend1 = graph->NewEdge(friendTypeId, peoplev1, peoplev2);
oid_t friend2 = graph->NewEdge(friendTypeId, peoplev2, peoplev3);
oid_t friend3 = graph->NewEdge(friendTypeId, peoplev1, peoplev3);
oid_t friend4 = graph->NewEdge(friendTypeId, peoplev1, peoplev4);
oid_t friend5 = graph->NewEdge(friendTypeId, peoplev4, peoplev5);
oid_t friend6 = graph->NewEdge(friendTypeId, peoplev6, peoplev4);
oid_t friend7 = graph->NewEdge(friendTypeId, peoplev5, peoplev6);
oid_t friend8 = graph->NewEdge(friendTypeId, peoplev6, peoplev7);
oid_t friend9 = graph->NewEdge(friendTypeId, peoplev7, peoplev3);
CommunitiesSCD commSCD(*sess);
commSCD.AddAllEdgeTypes();
commSCD.AddAllNodeTypes();
commSCD.Run();
DisjointCommunities *dcs = commSCD.GetCommunities();
for (sparksee::gdb::int64_t ii = 0; ii < dcs->GetCount(); ii++)
{
std::cout << "# community: " << ii << " size: " << cc->GetSize(ii) << std::endl;
Objects *dcsNodes = dcs->GetNodes(ii);
delete dcsNodes;
}
delete dcs;
delete sess;
delete db;
delete sparksee;
return EXIT_SUCCESS;
}