Ejemplo n.º 1
0
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));
}                   
Ejemplo n.º 2
0
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;
  }
}
Ejemplo n.º 3
0
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;
    }
}
Ejemplo n.º 4
0
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();
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
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;
    }
}
Ejemplo n.º 7
0
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;
    }
}
Ejemplo n.º 8
0
inline group read(const std::string& src) {
    scanner sc;
    sc.scan(src);
    return read_group(sc, false);
}
Ejemplo n.º 9
0
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;
}