Coder Social home page Coder Social logo

main_module's Introduction

Diff Main Machine

Описание

Diff Main Machine - сервер, который работает на веб сокетах.

Возможности:

  • Подключение и регистрация модулей различных типов (подробнее о типа см. ниже)
  • Обработка diff
  • Хранение diff для повторного использования
  • Хранение исходников библиотек

Документация:

setModuleType

Перед началом работы каждый модуль должен зарегистрироваться. Для этого после откртия канала через web socket необходимо прислать серверу команду setModuleType с типом подключенного модуля.

Возможные типы:

  • interface - интерфейс
  • documentation - модуль нахождения diff по документации
  • code - модуль нахождения diff по коду
  • fat model code - модуль, строящий model по коду
  • source migrate - модуль, для миграции с одной версии библиотеки на другую
  • diff machine - модуль, нахождения diff по fat model

Команда отправляется с помощью JSON.

Пример команды:

    {
     "cmd" : "setModuleType"
     "data" : "interface"
    }

После отправки клиенту придет сообщения вида:

    {
      status: "success"
      type: "setType"
      data: "now module type is interface"
    }

При успешном запросе

    {
      status: "error"
      message: "module type is undefined"
    }

После ошибки

getDirs

Получить все библиотеки, хранящиеся на сервере

Пример:

    {
      "cmd" : "getDirs"
    }

После отправки клиенту придет сообщения вида:

    {
      status: "success"
      type: "dirs"
      data: ['dirs', 'array']
    }

При успешном запросе

    {
      status: "error"
      message: "can't read libs dirs"
    }

После ошибки

getDir

Получить директорию по указанному пути

Пример:

   {
     "cmd" : "getDir"
     "data" : "path\to\dir"
   }

После отправки клиенту придет сообщения вида:

    {
      status: "success"
      type: "dir"
      data: ['dirs', 'and', 'files', 'array']
    }

При успешном запросе

    {
      status: "error"
      message: "can't read libs dir"
    }

После ошибки

getFile

Получить файл по указанному пути

Пример:

   {
     "cmd" : "getFile"
     "data" : "path\to\file"
   }

После отправки клиенту придет сообщения вида:

    {
      status: "success"
      type: "file"
      data: 'file content'
    }

При успешном запросе

    {
      status: "error"
      message: "can't read file"
    }

После ошибки

getDiffs

Получить diff для указанных файлов

Пример:

   {
     "cmd" : "getDiff"
     "data" : {
       "libV1Path" : "path\to\file"
       "libV2Path" : "path\to\file"
     }
   }

После обработки и отправки клиенту придет сообщения вида:

    {
      status: "success"
      type: "getDiffs"
      data: {[{
        your: "your"
        difs: "difs"
      },{
        your: "your"
        difs: "difs"
      }]}
    }

При успешном запросе

Обрабатывающие модули

Модуль должен начать обработку __diff__ после получения сообщения вида:
    {
      "type" : "request"
      "data" : {
        "key" : key
        "libV1PathDoc" : "path\to\lib1\doc"
        "libV2PathDoc" : "path\to\lib2\doc"
        "libV1PathSrc" : "path\to\lib1\src"
        "libV2PathSrc" : "path\to\lib2\src"
      }
    }

Для отправки обработанных diff используются следующие команды:

pushDiff

команда используется при отправлении на сервер списка найденных diff

Пример:

   {
     "cmd" : "pushDiff"
     "data" : {
       "key" : key
       "diffList" : diffList
     }
   }

diffList - список найденных diff, а key - id запроса

pushModel

команда используется при отправлении на сервер xml модели кода

Пример:

   {
     "cmd" : "pushModel"
     "data" : {
       "key": key
       "xmlModel": xmlModel
     }
   }

xmlModel - xml модель по коду, а key - id запроса

main_module's People

Watchers

 avatar  avatar

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.