Skip to content

Commit

Permalink
upload gpg code
Browse files Browse the repository at this point in the history
upload gpg code
it is available for generate gp code for golang
see detail at example directory
use gpg -h for help
  • Loading branch information
vipally committed Jan 20, 2014
0 parents commit 47f2041
Show file tree
Hide file tree
Showing 11 changed files with 772 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
215 changes: 215 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
#################
## Eclipse
#################

*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath


#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results

[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
*.ncrunch*
.*crunch*.local.xml

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.Publish.xml
*.pubxml

# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/

# Windows Azure Build Output
csx
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
App_Data/*.mdf
App_Data/*.ldf

#############
## Windows detritus
#############

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Mac crap
.DS_Store


#############
## Python
#############

*.py[co]

# Packages
*.egg
*.egg-info
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox

#Translations
*.mo

#Mr Developer
.mr.developer.cfg
28 changes: 28 additions & 0 deletions examples/example.gp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//This is an example of using gpg tool for generic-programming
//this is an example of using gpg to define an auto-lock global value with generic type
//it will be realized to real go code by gpg tool through the .gpg file with the same name
package example

import (
"sync"
)

type AutoLockGbl_<TYPE_NAME> struct {
val <VALUE_TYPE>
lock sync.RWMutex
}

func (me *AutoLockGbl_<TYPE_NAME>) Get() (r <VALUE_TYPE>) {
me.lock.RLock()
defer me.lock.RUnlock()
r = me.val
return
}

func (me *AutoLockGbl_<TYPE_NAME>) Set(val <VALUE_TYPE>) (r <VALUE_TYPE>) {
me.lock.Lock()
defer me.lock.Unlock()
r = me.val
me.val = val
return
}
13 changes: 13 additions & 0 deletions examples/example.gpg
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
;this is exactlly an ini file
;it is used to generate code from .gp file
[int]
TYPE_NAME=int
VALUE_TYPE=int

[string]
TYPE_NAME=str
VALUE_TYPE=string

[u64]
TYPE_NAME=u64
VALUE_TYPE=uint64
37 changes: 37 additions & 0 deletions examples/example_gpg_int.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// This file was auto-generated by [gpg] tool
// Last modify at: 2014-01-20 22:51:43.106125 +0800 +0800
// !!!!!!!!!NEVER MODIFY IT MANUALLY!!!!!!!!!

//Copyright @Ally 2014. All rights reserved.
//Version: 1.0.0
//Author: [email protected]
//Blog site: http://blog.sina.com.cn/ally2014

//This is an example of using gpg tool for generic-programming
//this is an example of using gpg to define an auto-lock global value with generic type
//it will be realized to real go code by gpg tool through the .gpg file with the same name
package example

import (
"sync"
)

type AutoLockGbl_int struct {
val int
lock sync.RWMutex
}

func (me *AutoLockGbl_int) Get() (r int) {
me.lock.RLock()
defer me.lock.RUnlock()
r = me.val
return
}

func (me *AutoLockGbl_int) Set(val int) (r int) {
me.lock.Lock()
defer me.lock.Unlock()
r = me.val
me.val = val
return
}
37 changes: 37 additions & 0 deletions examples/example_gpg_string.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// This file was auto-generated by [gpg] tool
// Last modify at: 2014-01-20 22:51:43.106125 +0800 +0800
// !!!!!!!!!NEVER MODIFY IT MANUALLY!!!!!!!!!

//Copyright @Ally 2014. All rights reserved.
//Version: 1.0.0
//Author: [email protected]
//Blog site: http://blog.sina.com.cn/ally2014

//This is an example of using gpg tool for generic-programming
//this is an example of using gpg to define an auto-lock global value with generic type
//it will be realized to real go code by gpg tool through the .gpg file with the same name
package example

import (
"sync"
)

type AutoLockGbl_str struct {
val string
lock sync.RWMutex
}

func (me *AutoLockGbl_str) Get() (r string) {
me.lock.RLock()
defer me.lock.RUnlock()
r = me.val
return
}

func (me *AutoLockGbl_str) Set(val string) (r string) {
me.lock.Lock()
defer me.lock.Unlock()
r = me.val
me.val = val
return
}
37 changes: 37 additions & 0 deletions examples/example_gpg_u64.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// This file was auto-generated by [gpg] tool
// Last modify at: 2014-01-20 22:51:43.12175 +0800 +0800
// !!!!!!!!!NEVER MODIFY IT MANUALLY!!!!!!!!!

//Copyright @Ally 2014. All rights reserved.
//Version: 1.0.0
//Author: [email protected]
//Blog site: http://blog.sina.com.cn/ally2014

//This is an example of using gpg tool for generic-programming
//this is an example of using gpg to define an auto-lock global value with generic type
//it will be realized to real go code by gpg tool through the .gpg file with the same name
package example

import (
"sync"
)

type AutoLockGbl_u64 struct {
val uint64
lock sync.RWMutex
}

func (me *AutoLockGbl_u64) Get() (r uint64) {
me.lock.RLock()
defer me.lock.RUnlock()
r = me.val
return
}

func (me *AutoLockGbl_u64) Set(val uint64) (r uint64) {
me.lock.Lock()
defer me.lock.Unlock()
r = me.val
me.val = val
return
}
Binary file added examples/gpg.exe
Binary file not shown.
Loading

0 comments on commit 47f2041

Please sign in to comment.