Code Monkey home page Code Monkey logo

fdo-swig's Introduction

fdo-swig

Better wrappers for FDO.

Initial target language is C#. Other languages that will hopefully be targeted include:

  • Python
  • Java
  • PHP
  • JavaScript (node.js)

Build Status

Windows: Build status

Windows (master): Build status

fdo-swig's People

Contributors

jumpinjackie avatar

Watchers

 avatar  avatar  avatar

fdo-swig's Issues

Implement Python container protocols

To improve the pythonic-ness of our bindings, our container classes should implement the container and mapping protocols so that instances of these objects can be operated on as though they were lists and dicts.

Control nodefaultctor and nodefaultdtor from within SWIG interface files

The python binding is reporting memory leaks on FdoDateTime objects. The issue it seems is that FdoDateTime has no destructor defined, so SWIG cannot free the pointer.

This issue is compounded by the fact that we run SWIG with nodefaultctor and nodefaultdtor, meaning that no default destructors are ever generated for FdoDateTime.

We need to change this so that nodefaultctor and nodefaultdtor is controlled from within the SWIG interface files so that when we hit FdoDateTime, we want SWIG to generate a default destructor for it

FDO Collection sugar

FdoIdentifierCollection

  • Support Add(FdoString*) - Adding identifiers without needing to create FdoIdentifier
  • Support Add(FdoString_, FdoString_) - Adding computed identifiers without needing to create FdoComputedIdentifier

FdoFeatureSchemaCollection

  • Support GetClassDefinition(FdoString_, FdoString_) - Return a class definition or null

FdoPropertyValueCollection

  • Support SetValue APIs that allow adding a FdoPropertyValue without having to create one
  • Support SetValueNull APIs that allow setting a FdoPropertyValue to null

.net Core support

We've had success getting our pure-swig MapGuide .net binding to work on .net core. We should try the same thing for FDO.

C# downcasting support

SWIG doesn't properly handle downcastable instances when wrapping methods that return a base class pointer. For simplicity, we should handle this on a case-by-case basis instead of trying to figure a one-size-fits-all typemap.

We should look out for and modify any method that returns:

  • FdoICommand
  • FdoClassDefinition
  • FdoPropertyDefinition
  • FdoIGeometry
  • FdoExpression
  • FdoLiteralValue
  • FdoDataValue
  • FdoFilter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.