util::Optional<SyncFileActionMetadata> SyncFileActionMetadata::metadata_for_path(const std::string& original_name, const SyncMetadataManager& manager) { auto realm = Realm::get_shared_realm(manager.get_configuration()); auto schema = manager.m_file_action_schema; TableRef table = ObjectStore::table_for_object_type(realm->read_group(), c_sync_fileActionMetadata); size_t row_idx = table->find_first_string(schema.idx_original_name, original_name); if (row_idx == not_found) { return none; } return SyncFileActionMetadata(std::move(schema), std::move(realm), table->get(row_idx)); }
void init_userdb() { read_passwd(); if (passwd_cnt == 0) { passwdtab = &defpasswd; passwd_cnt = 1; } read_group(); if (group_cnt == 0) { grouptab = &defgroup; group_cnt = 1; } }
int DxfMap::read_point(FILE *fp) { int groupCode; char string[256]; int number; double real; int line; int level; int vertices; int x1, y1, l; x1 = 0; y1 = 0; l = 0; if (featureNum < maxFeatureNum) { while ((groupCode = read_group(fp, string, &number, &real, &line, &level, &vertices)) >= 0) { if (groupCode == 8) { feature[featureNum].layer = level; // printf("Layer fuer Point_1: %d\n", level); l = 1; } if (groupCode == 10) { feature[featureNum].x = (double)real; feature[featureNum].x2 = (double)real; x1 = 1; } if (groupCode == 20) { feature[featureNum].y = (double)real; feature[featureNum].y2 =(double)real; y1 = 1; } if ((x1 == 1) && (y1 == 1) && (l == 1)) break; } featureNum++; return 1; } else { return -EIO; } }
inline value read_value(scanner& sc) { if (sc.peek_token().is_char('{')) { return value(read_group(sc, true)); } else if (sc.peek_token().is_char('[')) { return value(read_vector(sc)); } else { switch (sc.peek_token().type) { case token_type::identifier_token: { std::string ident = sc.expect_identifier(); if (ident == "true") { return value(true); } else if (ident == "false") { return value(false); } else { sc.fail("unexpected identifier", sc.peek_token().line, sc.peek_token().col); } break; } case token_type::string_token: { std::string str = sc.expect_string(); return value(str); } case token_type::number_token: { double dbl = sc.expect_number(); return value(dbl); } case token_type::char_token: { sc.fail("unexpected '" + std::string(1, sc.peek_token().char_value) + "'", sc.peek_token().line, sc.peek_token().col); break; } default: { sc.fail("unexpected token", sc.peek_token().line, sc.peek_token().col); break; } } } return value(); }
int DxfMap::load(char *filename, double mapOffsetX, double mapOffsetY, double scaleFactor) { FILE *fp; int groupCode; char string[256]; int number; double real; int line; int level; int vertices; int i; double x, y; if ((fp = fopen(filename, "r")) == NULL) { printf("Can't open dxf file \"%s\"\n", filename); return -EIO; } featureNum = 0; line = 0; while ((groupCode = read_group (fp, string, &number, &real, &line, &level, &vertices)) >= 0) { if ((groupCode == 0) && (strncmp(string, "POLYLINE", 9) == 0)) { if (read_polyline(fp) < 0) { break; } } if ((groupCode == 0) && (strncmp(string, "LINE", 5) == 0)) { if (read_line(fp) < 0) { break; } } if ((groupCode == 0) && (strncmp(string, "LWPOLYLINE", 11) == 0)) { if (read_lwpolyline(fp) < 0) { break; } } if ((groupCode == 0) && (strncmp(string, "POINT", 5) == 0)) { if (read_point(fp) < 0) { break; } } if ((groupCode == 0) && (strncmp(string, "EOF", 3) == 0)) break; } fclose(fp); for (i = 0; i < featureNum; i++) { x = (feature[i].y - mapOffsetX) * scaleFactor; y = (feature[i].x - mapOffsetY) * scaleFactor; feature[i].x = x; feature[i].y = y; x = (feature[i].y2 - mapOffsetX) * scaleFactor; y = (feature[i].x2 - mapOffsetY) * scaleFactor; feature[i].x2 = x; feature[i].y2 = y; x = feature[i].x2 - feature[i].x; y = feature[i].y2 - feature[i].y; feature[i].l = sqrt(x * x + y * y); if (feature[i].l > 0.0) { feature[i].rho = atan2(y, x); feature[i].sin = sin(feature[i].rho); feature[i].cos = cos(feature[i].rho); } else { feature[i].rho = 0.0; feature[i].sin = 0.0; feature[i].cos = 1.0; } } return 0; }
int DxfMap::read_lwpolyline(FILE *fp) { int groupCode; char string[256]; int number; double real; int line; int level; int vertices; int vertexNum = 0; int lwpolylayer = 0; int x,y; double newX = 0.0; double newY = 0.0; double oldX = 0.0; double oldY = 0.0; oldX = 0.0; oldY = 0.0; newX = 0.0; newY = 0.0; x = 0; y = 0; while ((groupCode = read_group(fp, string, &number, &real, &line, &level, &vertices)) >= 0) { if (groupCode == 8) { lwpolylayer = level; } if (groupCode == 90) { vertexNum = vertices; } if (groupCode == 10) { newX = (double)real; x++; } if (groupCode == 20) { newY = (double)real; y++; } if ((y==1) && (x==1)) { oldX = newX; oldY = newY; newX = 0.0; newY = 0.0; } if ((y >= 2) && (x >= 2) && x==y && vertexNum > 0) { feature[featureNum].x = oldX; feature[featureNum].y = oldY; feature[featureNum].x2 = newX; feature[featureNum].y2 = newY; feature[featureNum].layer = lwpolylayer; oldX = newX; oldY = newY; featureNum++; vertexNum--; } if ((groupCode == 0) && (vertexNum == 0)) { break; } } if (groupCode < 0) { return -EIO; } else { return vertexNum; } }
int DxfMap::read_polyline(FILE *fp) { int groupCode; char string[256]; int number; double real; int line; int level; int vertices; int vertexNum = 0; double newX = 0.0; double newY = 0.0; double oldX = 0.0; double oldY = 0.0; oldX = 0.0; oldY = 0.0; newX = 0.0; newY = 0.0; while ((groupCode = read_group(fp, string, &number, &real, &line, &level, &vertices)) >= 0) { if (groupCode == 8) { feature[featureNum].layer = level; } if (groupCode == 10) { newX = (double)real; // printf("newX %f\n", newX); // printf("oldX %f\n", newX); } if (groupCode == 20) { newY = (double)real; // printf("newY %f\n", newY); // printf("oldY %f\n", newY); } if ((groupCode == 0) && (strncmp(string, "VERTEX", 6) == 0)) { //printf("VERTEX\n"); if ((vertexNum >= 2) && (featureNum < maxFeatureNum)) { // create new line feature[featureNum].x = oldX; feature[featureNum].y = oldY; feature[featureNum].x2 = newX; feature[featureNum].y2 = newY; featureNum++; } oldX = newX; oldY = newY; newX = 0.0; newY = 0.0; vertexNum++; } if ((groupCode == 0) && (strncmp(string, "SEQEND", 6) == 0)) { if ((vertexNum >= 2) && (featureNum < maxFeatureNum)) { // create new line feature[featureNum].x = oldX; feature[featureNum].y = oldY; feature[featureNum].x2 = newX; feature[featureNum].y2 = newY; featureNum++; } break; } } if (groupCode < 0) { return -EIO; } else { return vertexNum; } }
inline group read(const std::string& src) { scanner sc; sc.scan(src); return read_group(sc, false); }
int main(int argc, char *argv[]) { FILE *pfile, *gfile, *hfile, *mfile; int qflag = 0, ch; char *domain = NULL; while ((ch = getopt(argc, argv, "d:g:h:m:p:P:q")) != -1) switch (ch) { case 'd': domain = optarg; break; case 'g': GroupFile = optarg; break; case 'h': HostFile = optarg; break; case 'm': NetidFile = optarg; break; case 'p': PasswdFile = optarg; break; case 'P': MasterPasswdFile = optarg; break; case 'q': qflag = 1; break; default: usage(); break; } if (argc > optind) usage(); if (domain == NULL) yp_get_default_domain(&domain); pfile = fopen(PasswdFile, "r"); if (pfile == NULL) pfile = fopen(MasterPasswdFile, "r"); if (pfile == NULL) err(1, "%s", MasterPasswdFile); gfile = fopen(GroupFile, "r"); if (gfile == NULL) err(1, "%s", GroupFile); hfile = fopen(HostFile, "r"); if (hfile == NULL) err(1, "%s", HostFile); mfile = fopen(NetidFile, "r"); read_passwd(pfile, PasswdFile); read_group(gfile, GroupFile); print_passwd_group(qflag, domain); print_hosts(hfile, HostFile, domain); if (mfile != NULL) print_netid(mfile, NetidFile); return 0; }