← Back to team overview

maria-discuss team mailing list archive

Re: writing plugin with .net language (C#)

 

Hello,

On Sun, Oct 4, 2015 at 9:05 AM, Guillaume Lefranc <
guillaume.lefranc@xxxxxxxxxxx> wrote:

> Hi Roberto,
>
> you could have a try at it with Golang, it can wrap C code easily
> https://golang.org/cmd/cgo/
>
>
Though with Go1.5 its now possible, uninstalling the plugins still leads to
segfaults.
And sadly, looks like it can't be fixed (not in near future, at least).

https://github.com/golang/go/issues/12582

Best,
Nirbhay


Best regards,
>
> Guillaume Lefranc
> RemoteDBA Services Manager - MariaDB Corporation Ab
>
> On Sun, Oct 4, 2015 at 3:26 AM, Roberto Spadim <roberto@xxxxxxxxxxxxx>
> wrote:
>
>> hummm, it's like creating a ".dll" that export functions to other program
>> call it? in this case your fast bit UDF functions export init/denit
>> functions to mysql, right? and you are using C++ or C language when you use
>> "extern"? i don't  know how compiler know if it's a C or C++ code
>>
>> 2015-10-03 20:36 GMT-03:00 Justin Swanhart <greenlion@xxxxxxxxx>:
>>
>>> extern "C" {
>>>
>>> Makes the function use CDECL calling conventions, which is equivalent to
>>> setting the .NET code to use CDECL calling conventions.  Any language that
>>> supports exporting symbols with CDECL calling conventions supports
>>> interoperating with C (it stands for C declarations aka C calling
>>> conventions).
>>>
>>> --Justin
>>>
>>> Sent from my iPhone
>>>
>>> On Oct 3, 2015, at 1:57 PM, Roberto Spadim <roberto@xxxxxxxxxxxxx>
>>> wrote:
>>>
>>> sorry guys, i'm a bit confuse about c++ and c
>>>
>>> i'm reading your fastbit udf code
>>>
>>> at /fb_udf.h
>>> you have a C code, right?
>>> and at fb_udf.cpp a c++ code
>>>
>>> you can mix c and c++ at the same code?
>>>
>>>
>>> at udf.h
>>> what this do?
>>>
>>> "
>>> extern "C" { "
>>> those functions should be undestood as "C" instead of "C++", or compiler
>>> should "export" those c++ function to "C" "code", or something related to C
>>> and namespaces ?
>>>
>>> sorry it's not mysql specific but i'm not finding some C++ plugins
>>> examples
>>>
>>>
>>> 2015-09-21 13:43 GMT-03:00 Roberto Spadim <roberto@xxxxxxxxxxxxx>:
>>>
>>>> :D nice
>>>> what i will is something like:
>>>>
>>>> 1) a plugin daemon that receive a tcp/ip connection with a double
>>>> linked list "feed" (something like:  clear list, delete from position x to
>>>> y, delete position x, insert at position x, update position x, move
>>>> position x to y)
>>>> 2) save this feed to a myisam/spider/innodb/anyother engine (i'm
>>>> thinking about using a mysql handler api) (i didn't check how it works, but
>>>> i think handler sock use it)
>>>> 3) keep the double linked list at memory (reconstruct the list when
>>>> server shutdown, maybe make some snapshots to avoid a long reconstruct,
>>>> something like after X lines of feed, save the list, or after x minutes)
>>>> 4) a engine to read the double linked list at memory (i don't know yet
>>>> how do this, but i will need some control about reading a shared memory,
>>>> how to access this shared memory from daemon plugin using storage engine)
>>>> 5) a engine to read information about what daemon is doing (like 4)
>>>> 6) at same plugin daemon, create a tcp/ip connection to "export" the
>>>> same feed to others users (just a proxy, not a big problem)
>>>>
>>>> at top level i think i will have 1 daemon plugin + 1 storage engine
>>>> plugin
>>>>
>>>> i'm thinking about c++ 11 cause it have double linked lists, threads,
>>>> atomic, sockets, and i dont need others libs (maybe i'm wrong, but that was
>>>> my first impression about c++11)
>>>>
>>>> 2015-09-21 13:34 GMT-03:00 Justin Swanhart <greenlion@xxxxxxxxx>:
>>>>
>>>>> Hi,
>>>>>
>>>>> My fastbit UDF use C++ 11 no problem.
>>>>>
>>>>> https://github.com/greenlion/FastBit_UDF
>>>>>
>>>>> On Fri, Sep 18, 2015 at 11:52 PM, Sergei Golubchik <serg@xxxxxxxxxxx>
>>>>> wrote:
>>>>>
>>>>>> Hi, Roberto!
>>>>>>
>>>>>> On Sep 18, Roberto Spadim wrote:
>>>>>> > guys , i'm still with doubts... but not more about c#, now about c++
>>>>>> > i was thinking about rewrite the code with c++
>>>>>> >
>>>>>> > my doubt is.... could i use C++ 11 ? or i will have problem with
>>>>>> mariadb
>>>>>> > makefiles etc etc?
>>>>>>
>>>>>> Sure, you  can use any language you want, C++11 is perfectly fine too.
>>>>>> cmake doesn't care.
>>>>>>
>>>>>> Regards,
>>>>>> Sergei
>>>>>>
>>>>>> _______________________________________________
>>>>>> Mailing list: https://launchpad.net/~maria-discuss
>>>>>> Post to     : maria-discuss@xxxxxxxxxxxxxxxxxxx
>>>>>> Unsubscribe : https://launchpad.net/~maria-discuss
>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Roberto Spadim
>>>> SPAEmpresarial - Software ERP
>>>> Eng. Automação e Controle
>>>>
>>>
>>>
>>>
>>> --
>>> Roberto Spadim
>>> SPAEmpresarial - Software ERP
>>> Eng. Automação e Controle
>>>
>>>
>>
>>
>> --
>> Roberto Spadim
>> SPAEmpresarial - Software ERP
>> Eng. Automação e Controle
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~maria-discuss
>> Post to     : maria-discuss@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~maria-discuss
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-discuss
> Post to     : maria-discuss@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~maria-discuss
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References