Ejemplo n.º 1
0
        public FFFunction(FFApp app, FFFile file, FFClass cls, CodeModel.Definitions.FunctionDefinition def)
        {
#if DEBUG
            if (app == null)
            {
                throw new ArgumentNullException("app");
            }
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }
            if (def == null)
            {
                throw new ArgumentNullException("def");
            }
#endif

            _app   = app;
            _file  = file;
            _class = cls;
            _name  = def.Name;
            _sig   = def.Signature;
            _span  = new CodeModel.Span(def.SourceStartPos, def.SourceStartPos);
            _def   = def;

            UpdateVisibility();
        }
Ejemplo n.º 2
0
        public void UpdateFromDefinition(CodeModel.Definitions.FunctionDefinition def)
        {
#if DEBUG
            if (def == null)
            {
                throw new ArgumentNullException("def");
            }
            if (def.DataType == null)
            {
                throw new ArgumentNullException("def.DataType");
            }
#endif
            _sig  = def.Signature;
            _span = new CodeModel.Span(def.SourceStartPos, def.SourceStartPos);
            _def  = def;

            UpdateVisibility();
        }
Ejemplo n.º 3
0
        public FFFunction(FFApp app, FFFile file, FFClass cls, SQLiteDataReader rdr)
        {
#if DEBUG
            if (app == null)
            {
                throw new ArgumentNullException("app");
            }
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }
#endif

            _app   = app;
            _file  = file;
            _class = cls;

            _id   = rdr.GetInt64(rdr.GetOrdinal("rowid"));
            _name = rdr.GetString(rdr.GetOrdinal("name"));
            _sig  = FunctionSignature.ParseFromDb(rdr.GetString(rdr.GetOrdinal("sig")));

            var devDescValue = rdr.GetStringOrNull(rdr.GetOrdinal("description"));
            if (devDescValue != null)
            {
                // TODO: Transitionary until the next database version
                if (_sig.Description == null)
                {
                    _sig.Description = devDescValue;
                }
            }

            var fileName    = _file.FileName;
            var altFileName = rdr.GetStringOrNull(rdr.GetOrdinal("alt_file_name"));
            if (!string.IsNullOrEmpty(altFileName))
            {
                fileName = altFileName;
            }
            var pos     = rdr.GetInt32(rdr.GetOrdinal("pos"));
            var filePos = new FilePosition(fileName, pos);

            _def = new CodeModel.Definitions.FunctionDefinition(_sig, filePos, 0, 0, 0, _span);

            UpdateVisibility();
        }